如何正确运行pyqt5应用程序?

2024-09-30 23:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法让我的应用程序的GUI以我需要的方式运行。我的问题是,根据下面的标准,如何正确地设置和运行GUI。我发现缺少好的文档是非常令人沮丧的(也许我找错地方了?)。在

我在一个叫做主客户窗口.py包含同名的类。这就是qt设计器中所有代码的位置。我有另一个名为GUIController的类文件。GUIController类就是这样做的,控制多个GUI窗口。我正试图在这个GUIController类中实例化并运行MainCustomerWindow。这是我一直在尝试的代码。在

def setup_window(self):
    APP = QtWidgets.QApplication(sys.argv)
    Window = MainCustomerWindow()
    Window.setupUi(QtWidgets.QMainWindow)
    Window.show()
    sys.exit(APP.exec_())

顺便说一句,我来自JavaFX和Swing,不完全了解pyqt5的工作流程。因此,如果有人能对这一点作出解释,我们将不胜感激。在


Tags: 代码文档pyapp应用程序标准客户地方
2条回答

Qt Designer生成的类不是widget,它是用于填充现有widget的类,因此必须在窗口中创建一个对象,假设您使用了“Main window”模板,那么widget必须是QMainWindow(如果是另一个,可能应该使用QDialog或{}),然后,您必须创建另一个属于该设计的类,并且使用方法setupUi()必须传递小部件来填充它:

def setup_window(self):
    app = QtWidgets.QApplication(sys.argv)
    # create window
    window = QtWidgets.QMainWindow()

    ui = MainCustomerWindow()
    # fill window
    ui.setupUi(window)

    window.show()

    sys.exit(app.exec_())

虽然更好的选择是创建一个新类并从这两个类继承:

^{pr2}$

如果您想获得详细信息,我建议您阅读以下内容:

你可以尝试将你的代码添加到应用程序脚本末尾的main语句中。您也可以让这个语句实例化类,其中init方法包含setupui()调用。例如:

if __name__ == '__main__':
    app = QWidgets.QApplication(sys.argv)
    window = QMainWindow()
    main_window = MainCustomerWindow()

    window.show()
    sys.exit(app.exec())

将PyQat应用程序设置为此应用程序的第一个实例。接下来,它实例化QMainWindow的一个实例,以便PyQt知道在主应用程序启动时显示什么。根据我的经验,我把setupui()放在app类的init方法中。在您的例子中,在MainCustomerWindow的init方法中,window.show()告诉PyQt开始呈现主窗口。在

相关问题 更多 >