Python PyQt4中有多个窗口?

Python PyQt4中有多个窗口?,python,pyqt4,Python,Pyqt4,我刚刚开始使用pyqt4。我遵循了一个教程() 让我困惑的是这一部分: def main(): app = QtGui.QApplication(sys.argv) ex = GUI() sys.exit(app.exec()) 我在这里解释原因: 我制作了一个小程序,除了第一个主窗口外,它还可以打开四个窗口。 所以我试着复制我在主窗口中看到的东西,为每个新窗口创建一个类,并试着像上面这样做。现在看起来是这样的: def main2(): #app = QtGu

我刚刚开始使用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())
class GUI(QtGui.QMainWindow):
    def __init__(self):
        super(GUI, self).__init__()
        self.initUI()
正如你所看到的,我已经修改了它。如果我未注释函数中的第一行,程序将崩溃。我尝试不使用sys.exit(app.exec_389;())-部分,但这只会使新窗口在显示几毫秒后关闭。 不过,通过这种方式,一切都运行正常。只有在命令窗口中,才会显示错误消息。我不知道如何解决这个问题,因为我无法删除最后一行,也不知道用什么替换“app”

我知道我可能从一开始就把新窗口弄错了,但我不知道如何从原来的窗口以任何其他方式打开这些窗口。我还没能做任何其他的事情,至少现在可以运行了。因此,唯一的问题是提示中的错误消息,最好将其清除:)

谢谢你的帮助(复杂和简单的)

忘了提一下,我让课程开始时是这样的:

def main2():
    #app = QtGui.QApplication(sys.argv)
    ex2 = Settings()
    sys.exit(app.exec())
class GUI(QtGui.QMainWindow):
    def __init__(self):
        super(GUI, self).__init__()
        self.initUI()


我通过调用main2()打开设置窗口,您必须在程序中创建一个且仅创建一个QApplication

请记住,GUI编程是事件驱动的,首先声明小部件,然后使用
app.exec()
运行主循环,当用户退出应用程序时,
app.exec()
返回

QApplication的目的是处理用户事件,并使用Qt信号将它们传播到代码中。我建议你检查一下,它是非常完整的,即使它是C++程序员的缩写。 例如,创建两个小部件的方法是:

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

    ex = QtGui.QWidget()
    ex.show()
    ex2 = QtGui.QWidget()
    ex2.show()

    sys.exit(app.exec())

谢谢,这确实澄清了一些事情。但我不能同时显示所有窗口。首先,启动时会显示qmain窗口,从那里它取决于将打开什么,因为我可以在菜单栏中选择不同的选项。一个帮助窗口,或设置窗口。@right\u那里:您需要创建(或至少显示)您的设置窗口以响应事件,请参阅您遵循的关于事件的教程:哦,我已经完成了!我只是不想把所有的代码都放在这里,大概560行。我把一切都搞定了,当我点击按钮时,窗口就打开了。我有一个很好的带有菜单栏的GUI,我已经在设置窗口中安排了所有的按钮。只是它抛出了关于我在第一篇文章中描述的错误消息,我不知道如何更改它。也许我应该在这里提供更多的代码?