我刚刚开始使用pyqt4。我遵循了一个教程(http://zetcode.com/tutorials/pyqt4/)让我困惑的一件事是这部分:
def main():
app = QtGui.QApplication(sys.argv)
ex = GUI()
sys.exit(app.exec())
我在这里解释的原因是:
我制作了一个小程序,除了第一个主窗口外,它还能再打开四个窗口。所以我试图复制我在主窗口中看到的内容,并为每个新窗口创建一个类,并尝试像上面那样做。目前它看起来像这样:
def main2():
#app = QtGui.QApplication(sys.argv)
ex2 = Settings()
sys.exit(app.exec())
如您所见,我已对其进行了修改。如果我不注释函数中的第一行,程序就会崩溃。我尝试不使用sys.exit(app.exec_()) -part,但这只会使新窗口在显示后几毫秒内关闭。但是,这样,一切都运行并正常工作。只有在命令窗口中,才会显示错误消息。我不知道如何解决这个问题,因为我无法删除最后一行,而且我不知道用什么替换“app”。
我知道我可能从一开始就做错了新窗口,但我不知道如何以任何其他方式从原始窗口打开这些窗口。我无法让其他任何东西工作,这至少现在可以运行和工作。所以唯一的问题是提示中的错误消息,摆脱它们会很好:)
感谢您的任何帮助(复杂和简单的)!
忘了说,我让课程开始是这样的:
class GUI(QtGui.QMainWindow):
def __init__(self):
super(GUI, self).__init__()
self.initUI()
和
class Settings(QtGui.QWidget):
def __init__(self):
super(Settings, self).__init__()
...here goes some more...
self.initUI2()
我通过调用 main2() 打开设置窗口