PyQt4中有多个窗口?

我刚开始使用pyqt4。 我跟着一个教程(http://zetcode.com/tutorials/pyqt4/)让我感到困惑的是这部分:

def main():
    app = QtGui.QApplication(sys.argv)
    ex = GUI()
    sys.exit(app.exec())

我在这里解释的原因是:

我做了一个小程序,除了第一个主窗口外,还打开了四个窗口。 所以我试图复制我看到的与main-window一起工作的内容,并为每个新窗口创建一个类,并试图像上面那样做。 目前看起来像这样:

def main2():
    #app = QtGui.QApplication(sys.argv)
    ex2 = Settings()
    sys.exit(app.exec())

正如你所看到的,我修改了它。 如果我将该函数的第一行取消注释,程序将崩溃。 我试图没有sys.exit(app.exec_()) -部分,但这只会使新窗口显示后关闭几毫秒。 这样,所有东西都可以运行并运行。 只有在命令窗口中显示错误消息。 我不知道如何解决这个问题,因为我无法删除最后一行,我不知道用什么来替换“应用程序”

我知道我可能从一开始就做错了新窗口,但我不知道如何使这些窗口以任何其他方式从原始窗口打开。 我还没有能够得到任何其他的工作,至少现在运行和工作。 所以唯一的问题是提示中的错误信息,它将很好地摆脱它们:)

感谢您的帮助(复杂而简单的)!

忘了提及,我让这样的课程开始:

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()打开设置窗口


您必须在程序中创建一个并且只有一个QApplication。

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

QApplication的目的是处理用户事件,并用Qt信号传播给你的代码。 我建议你检查Qt文档,它是非常完整的,即使它是针对C ++程序员。

举例来说,创建两个小部件的方法是:

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

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

    sys.exit(app.exec())
链接地址: http://www.djcxy.com/p/64489.html

上一篇: Multiple windows in PyQt4?

下一篇: PyQt4 bug when running multiple classes