如何使用 PySide 导入主窗口(.ui 文件)

Posted

技术标签:

【中文标题】如何使用 PySide 导入主窗口(.ui 文件)【英文标题】:How to import mainwindow (.ui file) using PySide 【发布时间】:2014-03-16 11:48:17 【问题描述】:

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

感谢您的回答。 ^^

【问题讨论】:

【参考方案1】:

假设 Qt Designer 中的***对象名为 MainWindow

当您使用pyside-uic 生成GUI 模块时,它会创建一个名为Ui_MainWindow 的类。您需要将此类导入到您的主应用程序中。导入的类有一个setupUi 方法,用于将GUI 注入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_())

【讨论】:

我已经用过这个方法,而且很有效。谢谢你的答案。 ;)【参考方案2】:

您需要使用QUILoader class。

也就是说,您将使用 here 记录的“加载”方法。

您可以将 QIODevice 子类作为第一个参数传递,例如一个 QFile 实例,您可以在其中打开 .ui 文件。

【讨论】:

我不确定我的代码有什么问题。我改用 pyside-uic 从 .ui 文件生成 .py 文件。谢谢您的回答。我认为它可能对其他人有用。 ;) @Laszlo Papp

以上是关于如何使用 PySide 导入主窗口(.ui 文件)的主要内容,如果未能解决你的问题,请参考以下文章

如何在pyside中打开一个新窗口

使用 Pyside6 缺少主窗口图标

将小部件从单独的 ui 文件加载到主窗口

如何使用 PySide 获取 Maya 主窗口指针?

Python3.8 与 PySide2 类到类用法

pyside2-uic 工具把ui文件转化为python类