好的,所以对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()
答案 0 :(得分:4)
问题是在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
的引用,以便它不会被垃圾收集并消失。
答案 1 :(得分:0)
self.showMaximized()
PyQt5 是 Qt 工具包的 Python 绑定。对于 QtWidgets,有完整的文档。
https://doc.qt.io/qt-5/qwidget.html#showMaximized
对于另一个 show*() 方法只需查看文档,它很完整,很好。并且可能是世界上记录最完整的 C++ 框架。