为什么pyqt中当form2设为全屏后关闭显示黑屏?当我在form2中加入self.setWindowState(Qt.WindowFullScreen)代码后,调用form2的close()方法,form2关闭后黑屏?
main.py代码
from PyQt5.QtWidgets import QWidget,QApplication
from form1 import Form1
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = Form1()
mainWin.show()
sys.exit(app.exec())
form1ui.py代码
rom PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow1(object):
def setupUi(self, MainWindow1):
MainWindow1.setObjectName("MainWindow1")
MainWindow1.resize(378, 162)
self.centralwidget = QtWidgets.QWidget(MainWindow1)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(130, 40, 113, 32))
self.pushButton.setObjectName("pushButton")
MainWindow1.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow1)
self.menubar.setGeometry(QtCore.QRect(0, 0, 378, 22))
self.menubar.setObjectName("menubar")
MainWindow1.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow1)
self.statusbar.setObjectName("statusbar")
MainWindow1.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow1)
QtCore.QMetaObject.connectSlotsByName(MainWindow1)
def retranslateUi(self, MainWindow1):
_translate = QtCore.QCoreApplication.translate
MainWindow1.setWindowTitle(_translate("MainWindow1", "MainWindow"))
self.pushButton.setText(_translate("MainWindow1", "打开form2"))
form1.py代码
from PyQt5.QtWidgets import QMainWindow
from form1ui import Ui_MainWindow1
from form2 import Form2
class Form1(QMainWindow,Ui_MainWindow1):
def __init__(self):
super().__init__()
self.setupUi(self)
self.form2 = Form2()
self.pushButton.clicked.connect(self.showForm2)
def showForm2(self):
self.showMinimized()
self.form2.show()
form2ui.py代码
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow2(object):
def setupUi(self, MainWindow2):
MainWindow2.setObjectName("MainWindow2")
MainWindow2.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow2)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(340, 360, 113, 32))
self.pushButton.setObjectName("pushButton")
MainWindow2.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow2)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
self.menubar.setObjectName("menubar")
MainWindow2.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow2)
self.statusbar.setObjectName("statusbar")
MainWindow2.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow2)
QtCore.QMetaObject.connectSlotsByName(MainWindow2)
def retranslateUi(self, MainWindow2):
_translate = QtCore.QCoreApplication.translate
MainWindow2.setWindowTitle(_translate("MainWindow2", "MainWindow"))
self.pushButton.setText(_translate("MainWindow2", "关闭"))
form2.py代码
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtCore import Qt
from form2ui import Ui_MainWindow2
class Form2(QMainWindow,Ui_MainWindow2):
def __init__(self):
super().__init__()
self.setupUi(self)
self.setWindowState(Qt.WindowFullScreen)
self.pushButton.clicked.connect(self.closeWin)
def closeWin(self):
self.close()