在使用Qt designer 完成界面的设计后,我们会得到一个.ui后缀的文件。想要在自己的python文件中使用这个界面一般有两种方式。
一. 将.ui文件转换为.py文件
在windows上,对生成的.ui文件(比如Main.ui),使用命令,生成MainWin.py文件
python -o MainWin.py Main.ui
生成的.py文件大致格式如下:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'firstMainWin.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
...
def retranslateUi(self, MainWindow):
...
如何使用这个Ui_MainWindow类呢?有两种方式
- 直接在该py文件下加入如下代码块:
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv) # 创建一个QApplication,也就是你要开发的软件app
MainWindow = QtWidgets.QMainWindow() # 创建一个QMainWindow,用来装载你需要的各种组件、控件
ui = Ui_MainWindow() # ui是Ui_MainWindow()类的实例化对象
ui.setupUi(MainWindow) # 执行类中的setupUi方法,方法的参数是第二步中创建的QMainWindow
MainWindow.show() # 执行QMainWindow的show()方法,显示这个QMainWindow
sys.exit(app.exec_()) # 使用exit()或者点击关闭按钮退出QApplicat
2. 简单为这个窗口(界面)构造一个类,以使用
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyMainWindow()
myWin.show()
sys.exit(app.exec_())
二. 直接使用.ui文件
from PyQt5 import QtCore, QtGui, QtWidgets, uic
class MWindows(QtWidgets.QMainWindow):
super(MWindows, self).__init__()
uic.loadUi(Main.ui)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MWindows()
window.show()
sys.exit(app.exec_())