Qt Designer 快速入门
Qt Designer 是一个强大、灵活的可视化GUI设计工具,可以帮助我们加快开发PyQt程序的速度。Qt Designer是专门用来制作PyQt程序中UI界面的工具,它生成的UI界面是一个后缀为.ui文件。可以通过命令将.ui文件转换为.py格式的文件。
Qt Designer 符合MVC设计模式,做到了显示和业务逻辑的分离
优点:
- 使用简单,通过拖曳和点击就可以完成复杂的界面设计,而且还可以随机预览查看效果图
- 转换Python文件方便。
.ui文件实际上是XML格式的文本文件,为了在PyQt中使用.ui文件,可以通过pyuic5命令将.ui文件转换为.py文件。
Qt Designer 安装的路径为
新建主窗口
双击designer.exe
打开文件。
选择模板Main Window
,创建一个主窗口,保存为firstMainWin.ui
窗口主要区域介绍
Widget Box:表示为工具箱,其中提供了很多控件,每个控件都有自己的名称,提供不同的功能,比如常用的按钮、单选钮、文本框等。可以直接拖放到主窗口中。在菜单栏中选择窗体
→
\rightarrow
→ 预览
或者Ctrl+R
主窗口
对象查看器,可以查看主窗口中放置的对象列表
属性编辑器、其中提供了对窗口、控件、布局的属性编辑功能
信号/槽编辑器,动作编辑器和资源浏览器,可以为控件添加自定义信号和槽函数
资源浏览器中,可以为控件添加图片等
查看UI文件
将.ui文件转换为.py文件
我们可以提供不同的方法进行转化,对简单的方式就是使用IDE自带的方式进行转换。
通过命令行进行转换
使用命令就是
pyuic5 -o 输出文件名称 转换文件名称
通过脚本转换
import os
import os.path
# UI文件所在的路径
dir = './'
# 列出目录下的所有UI文件
def listUiFile():
List = []
files = os.listdir(dir)
for filename in files:
if os.path.splitext(filename)[1] == '.ui':
List.append(filename)
return List
def transPyFile(filename):
return os.path.splitext(filename)[0] + '.py'
def runMain():
List = listUiFile()
for uifile in List:
pyfile = transPyFile(uifile)
cmd = 'pyuic5 -o {pyfile} {uifile}'.format(pyfile=pyfile,uifile=uifile)
os.system(cmd)
if __name__ == '__main__':
runMain()
双击运行程序就可以得到本地目录下的转换文件
界面与逻辑分离
由于.py文件是由.ui文件编译来的。界面文件的每次编译时都会初始化,所以需要新建一个.py文件调用界面文件,这个新建的.py文件称为逻辑文件,也称为业务文件。界面文件和逻辑文件是两个相对独立的文件,通过上述方法就实现了界面与逻辑的分离。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from firstMainWin import *
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_())
上面的代码实现了业务逻辑。