如何在Python中调用Qt5中的UI类

2024-06-25 05:19:25 发布

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

这是必须调用UI类的类:

class mainpanelManager(QtGui.QGuiApplication, Ui_MainWindow):
    def __init__(self):
        QtGui.QGuiApplication.__init__(self)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)


if __name__ == "__main__":
    app = QtGui.QGuiApplication(sys.argv)
    window = mainpanelManager()
    window.show()
    sys.exit(app.exec_())

这是UI类(由QtCreator和Qt5.7生成):

^{pr2}$

当我运行class mainpanelManager时,我得到以下错误:

QtGui.QGuiApplication.__init__(self)
TypeError: QGuiApplication(List[str]): not enough arguments

请给我一些建议如何从另一个类运行UI类。 我做错什么了??我发现的样本使用的是import PyQt4 import QtCore, QtGui, QtWidgets,但在我的例子中(使用Qt5),没有QApplication选项,就像Qt4。似乎Qt5使用了QtGui.QGuiApplication。我不明白。欢迎任何帮助。请详细解释。我对Python还是个新手。在


Tags: importselfappuiinitdefsyswindow
1条回答
网友
1楼 · 发布于 2024-06-25 05:19:25

您需要一个与Qt Designer的顶层对象相匹配的子类,在本例中,它似乎是一个QMainWindow

class mainpanelManager(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

您应该使用QApplication

^{pr2}$

附言:

PyQt4与PyQt5不兼容。请参见:Differences Between PyQt4 and PyQt5。在

PPS:

看起来您还试图编辑pyuic生成的模块。千万不要那样做。我建议你重新运行pyuic,这样你就能得到一个干净的模块。在

相关问题 更多 >