簡體   English   中英

PyQT 全屏問題

[英]PyQT Fullscreen Issue

好的,所以對 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.showMaximized()

PyQt5 是 Qt 工具包的 Python 綁定。 對於 QtWidgets,有完整的文檔。

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

對於另一個 show*() 方法只需查看文檔,它很完整,很好。 它可能是世界上記錄最完整的 C++ 框架。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM