Python PyQT全屏问题

Python PyQT全屏问题,python,python-3.x,pyqt4,Python,Python 3.x,Pyqt4,好的,对于python来说还是相当陌生的,ans刚刚开始在我的Pi上使用PyQT为我的一些代码制作GUI。但是,窗口会在一瞬间打开,然后关闭到一个小窗口。谁能告诉我哪里出了问题 import sys from PyQt4 import QtGui, QtCore class mainUI(QtGui.QWidget): def __init__(self): super(mainUI, self).__init__()

好的,对于python来说还是相当陌生的,ans刚刚开始在我的Pi上使用PyQT为我的一些代码制作GUI。但是,窗口会在一瞬间打开,然后关闭到一个小窗口。谁能告诉我哪里出了问题

import sys
from PyQt4 import QtGui, QtCore

class mainUI(QtGui.QWidget):
        def __init__(self):
                super(mainUI, self).__init__()
                self.initUI()

        def initUI(self):

                MainWindow = QtGui.QWidget()
                MainWindow.showFullScreen()
                MainWindow.setWindowTitle('TimeBot')
                MainWindow.show()

                qbtn = QtGui.QPushButton('Quit')
                qbtn.clicked.connect(QtCore.QCoreApplication.quit)
                qbtn.move(5,5)
                qbtn.show()

                self.show()            

def main():
        app = QtGui.QApplication(sys.argv)

        window = mainUI()

        sys.exit(app.exec_())

if __name__ == '__main__':
        main()

问题是,在
initUi
中,您创建了另一个
QWidget
,将其设置为全屏显示,然后当该小部件超出范围时,它会被垃圾收集并消失。您打算使用
self
而不是制作一个新的
QWidget
。像这样:

import sys
from PyQt4 import QtGui, QtCore

class mainUI(QtGui.QWidget):
        def __init__(self):
                super(mainUI, self).__init__()
                self.initUI()

        def initUI(self):

                self.showFullScreen()

                qbtn = QtGui.QPushButton('Quit')
                qbtn.clicked.connect(QtCore.QCoreApplication.quit)
                qbtn.move(5,5)
                self.button = qbtn
                qbtn.show()


def main():
        app = QtGui.QApplication(sys.argv)
        window = mainUI()
        sys.exit(app.exec_())

if __name__ == '__main__':
        main()
请注意,我保留了对
qbtn
的引用,这样它就不会被垃圾收集并消失。

self.showmized()

PyQt5是Qt工具包的Python绑定。对于QTWidget,有完整的文档


对于另一个show*()方法,只需查看文档,它是完整的,很好。这可能是世界上最有记载的C++框架。

我将链接ZETCODE教程,当我发现它包含了同样的bug时!hackyday:人们总是犯这样的错误。@Spook811:一般来说,在你最简单的工作示例中,删除所有你不需要的东西。