关于QtDesigner的使用可参见博文PyQT5界面开发—利用QtDesigner设计UI界面—Qt Designer简介。
本文介绍如何利用已生成的ui文件,生成可很执行的程序。要调用ui文件,需要导入PyQt库的uic模块。
其中的loadui ()函数用来加载ui文件:
loadUi (uifile[, baseinstance=None[, package=''[, resource_suffix='_rc']]])
如果未指定baseinstance参数,该函数将返回一个新窗口实例。
通过该窗口实例可以访问窗口中的组件。
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets, uic
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
Form, Base = uic.loadUiType("MyForm.ui")
self.ui = Form()
self.ui.setupUi(self)
self.ui.btnQuit.clicked.connect(QtWidgets.qApp.quit)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_()
也可在在窗口类外单独调用生成窗口,然后窗口类继承自该窗口类:
from PyQt5 import QtWidgets, uic
Form, Base = uic.loadUiType("MyForm.ui")
class MyWindow(QtWidgets.QWidget, Form):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setupUi(self)
self.btnQuit.clicked.connect(QtWidgets.qApp.quit)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
以下是MyForm.ui的内容: