当 window 大小在 pyqt 中最大化时无法隐藏 window

Cant't hide a window when window size maximized in pyqt

我有两个 windows,我想通过使用 Qt 计时器在三秒后隐藏它,但是它重叠...它可能发生在 window 大小设置为 "showMaximized"

from PyQt4 import QtCore, QtGui
from PyQt4 import QtGui
from PyQt4.QtCore import Qt, QPoint

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)



class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.showMaximized()
        Form.setStyleSheet(_fromUtf8("background-color: rgb(0, 0, 0);"))
        self.label = QtGui.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(450, 317, 300, 61))
        self.label.setStyleSheet(_fromUtf8("font: 75 60pt \"Tlwg Mono\";color: rgb(255, 255, 255);"))
        self.label.setObjectName(_fromUtf8("label"))

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(_translate("Form", "Form", None))
        self.label.setText(_translate("Form", "omniOS", None))

class Ui_Dialog1(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.showMaximized()
        Dialog.setStyleSheet(_fromUtf8("background-color: rgb(0, 0, 0);"))
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        self.centralwidget = QtGui.QWidget(Dialog)
        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))


class Dialog(QtGui.QDialog, Ui_Form):
    def __init__(self, parent=None):
        super(Dialog, self).__init__(parent)
        self.setupUi(self)

class Dialog1(QtGui.QDialog, Ui_Dialog1):
    def __init__(self, parent=None):
        super(Dialog1, self).__init__(parent)
        self.setupUi(self)
    def paintEvent(self, event):
         painter = QtGui.QPainter(self)
         painter.setPen(QtGui.QPen(QtCore.Qt.white))
         painter.drawArc(QtCore.QRectF(640, 330, 35, 35), 0, 5750)



if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    w1=Dialog()
    w2=Dialog1()




    def on_timeout():
        w1.hide()
        w2.show()

    QtCore.QTimer.singleShot(3000, on_timeout)
    sys.exit(app.exec_())

我需要做的是,我需要得到 second window 三秒后 when 大小设置为最大化。

 Form.showMaximized()

对 (form.resize) 的更改符合我的预期。 任何帮助plz

您没有观察到 w1 已关闭,因为 w2 在 w1 之上,但如果它正在工作,那么您在评论中指出我理解您最初只想要可见的 w1,并在 3 秒后显示 w2 和 w1是隐藏的,考虑到解决方案如下:

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    w1=Dialog()
    w2=Dialog1()
    w2.hide()
    QtCore.QTimer.singleShot(3000, w1.hide)
    QtCore.QTimer.singleShot(3000, w2.showMaximized)
    sys.exit(app.exec_())