【发布时间】:2017-02-25 17:28:11
【问题描述】:
我需要在我的 MainWindow 中实例化 2 Ui。如果我只实例化 1 个 Ui,则此代码有效:
self.loginWindow = QtWidgets.QDialog(MainWindow)
self.ui = Ui_LogInWindow()
self.ui.setupUi(self.loginWindow)
self.loginWindow.setModal(True)
self.loginWindow.show()
但是,当我尝试为我的其他 Ui 执行此操作时,它会产生错误:
self.loginWindow = QtWidgets.QDialog(MainWindow)
self.ui = Ui_LogInWindow()
self.ui.setupUi(self.loginWindow)
self.loginWindow.setModal(True)
self.loginWindow.show()
self.profileWindow = QtWidgets.QDialog(MainWindow)
self.ui = Ui_ProfileWindow()
self.ui.setupUi(self.profileWindow)
self.profileWindow.setModal(True)
#self.profileWindow.show()
问题是,我的 MainWindow 中的 Ui_LogInWindow 和 Ui_ProfileWindow 都需要小部件。如果我不能正确实例化这两者,我不知道如何让它工作。我是 PyQt 和 Python 的新手,这就是为什么我不太了解语法的原因。帮助将不胜感激。谢谢!
【问题讨论】:
-
我不太明白你想要什么。你能提供一个最小的工作示例吗?或者一张照片,也许?
-
我的意思是,我如何在我的主 ui 中实例化两个或多个 Ui。我不理解实例化中父子关系的概念,这就是为什么上面显示的代码的第二部分不起作用的原因;并且第一个显示的代码有效。
-
所以您希望在一个窗口上同时显示 2 个不同的 UI?您期望它的外观如何:并排,相互叠加?或者你想要两个可以独立显示的独立窗口?
-
两个独立的窗口,可以独立显示。你看,我在每个窗口内都有稍后将使用的小部件,并且连接到我的主窗口内的小部件。这就是为什么,我需要学习如何在我的主 Ui 中实例化两个或多个 Ui
-
您试图同时拥有多个模态窗口的尝试打破了窗口模态的概念。您可能想要的是无模式窗口。更多关于 Qt 模式的信息在这里doc.qt.io/qt-4.8/qdialog.html#details
标签: python-3.x user-interface pyqt instance pyqt5