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

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

感谢您的回答。 ^^

【问题讨论】:

    标签: python qt pyside 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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多