QT学习一、Qt Designer 简介二、使用方法三、动态加载UI文件
一、Qt Designer 简介QT程序界面的 一个个窗口、控件,就是像上面那样用相应的代码创建出来的。但是,把你的脑海里的界面,用代码直接写出来,是有些困难的。很多时候,运行时呈现的样子,不是我们要的。我们经常还要修改代码调整界面上控件的位置,再运行预览。反复多次这样操作。可是这样,真的…太麻烦了。
其实,我们可以用QT界面生成器 Qt Designer ,拖拖拽拽就可以直观的创建出程序大体的界面。
找到这个东西,打开
可以看到选择很多类型
这个就是设置界面的区域
左边有相关的工具
生成想要的界面
下面进行相应的修改
他的名字很重要,你要控制哪一个,就是通过他的名字
可以预览查看
然后保存
打开这个ui文件看看,就是一个XML格式的界面定义。
有了界面定义文件,我们的Python程序就可以从文件中加载UI定义,并且动态 创建一个相应的窗口对象。
特别注意这个地方,一定要和你创建时候的名字相对应,不然就会报错,我创建的时候用的是Button,我输入button时就给我报错了
from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader #导入相关的类
from PySide2.QtCore import QFile
class Stats:
def __init__(self):
# 从文件中加载UI定义
qfile_stats=QFile("ui/薪资统计.ui") #这三句记住就好了
qfile_stats.open(QFile.ReadOnly)
qfile_stats.close()
# 从 UI 定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如 self.ui.button , self.ui.textEdit
self.ui = QUiLoader().load(qfile_stats)
self.ui.Button.clicked.connect(self.handleCalc) #使用按键,让按键发挥作用
def handleCalc(self):
info = self.ui.textEdit.toPlainText()
salary_above_20k = ''
salary_below_20k = ''
for line in info.splitlines():
if not line.strip():
continue
parts = line.split(' ')
parts = [p for p in parts if p]
name,salary,age = parts
if int(salary) >= 20000:
salary_above_20k += name + 'n'
else:
salary_below_20k += name + 'n'
QMessageBox.about(self.ui,
'统计结果',
f'''薪资20000 以上的有:n{salary_above_20k}
n薪资20000 以下的有:n{salary_below_20k}'''
)
app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()
就是我们刚刚创建的页面,以后使用的时候直接复制过来就可以了,把对应的功能按键加上就行了。



