如何使用PySide导入mainwindow (.ui文件)

3 投票
2 回答
8282 浏览
提问于 2025-04-17 22:32

我正在做一个Python项目,并使用PySide设计它的界面。现在我遇到的问题是,如何通过PySide从Qt Designer导入主窗口(.ui文件)。我的类是从QtGui.QMainWindow继承的。

谢谢你的回答。^^

2 个回答

0

你需要使用 QUILoader类

具体来说,你会用到它的“load”方法,详细说明可以在 这里 找到。

你可以把一个 QIODevice 的子类作为第一个参数传进去,比如说一个 QFile 实例,用来打开 .ui 文件。

1

假设在Qt Designer中,最上层的对象叫做 MainWindow

当你使用 pyside-uic 来生成图形界面模块时,它会创建一个叫做 Ui_MainWindow 的类。你需要把这个类导入到你的主应用程序中。这个导入的类里面有一个 setupUi 方法,它的作用是把图形界面注入到Qt Designer中最上层的类的实例里。所以,基本的代码应该像这样:

from PySide import QtCore, QtGui
from mainwindow import Ui_MainWindow

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow.setupUi(self)

有了这些,你就可以像这样访问Qt Designer中的小部件:

       # connect a button to its handler
       self.ui.pushButton.clicked.connect(self.handleButtonClicked)

要运行这个应用程序,你可以这样做:

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

撰写回答