【问题标题】:PyQT Fullscreen IssuePyQT 全屏问题
【发布时间】:2014-05-02 22:38:20
【问题描述】:

好的,所以对于 python 来说还是相当新的,我刚开始在我的 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()

【问题讨论】:

  • 我正要链接 zetcode 教程,但我发现它包含与您相同的错误!
  • @hackyday:人们总是犯这个错误。
  • @Spook811:一般来说,在你的最小工作示例中删除所有你不需要的东西。

标签: python python-3.x pyqt4


【解决方案1】:

问题在于,在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 的引用,这样它就不会被垃圾收集并消失。

【讨论】:

    【解决方案2】:

    self.showMaximized()

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

    https://doc.qt.io/qt-5/qwidget.html#showMaximized

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

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 2013-03-18
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多