如何使用PySide导入mainwindow (.ui文件)
我正在做一个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_())