如何使用 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 文件)的主要内容,如果未能解决你的问题,请参考以下文章