QT学习一、Qt Designer 简介二、使用方法三、动态加载UI文件 一、Qt Designer 简介
QT程序界面的 一个个窗口、控件,就是像上面那样用相应的代码创建出来的。但是,把你的脑海里的界面,用代码直接写出来,是有些困难的。很多时候,运行时呈现的样子,不是我们要的。我们经常还要修改代码调整界面上控件的位置,再运行预览。反复多次这样操作。可是这样,真的…太麻烦了。
其实,我们可以用QT界面生成器 Qt Designer ,拖拖拽拽就可以直观的创建出程序大体的界面。
找到这个东西,打开
可以看到选择很多类型
这个就是设置界面的区域
左边有相关的工具
生成想要的界面
下面进行相应的修改
他的名字很重要,你要控制哪一个,就是通过他的名字
可以预览查看
然后保存
打开这个ui文件看看,就是一个XML格式的界面定义。
有了界面定义文件,我们的Python程序就可以从文件中加载UI定义,并且动态 创建一个相应的窗口对象。
特别注意这个地方,一定要和你创建时候的名字相对应,不然就会报错,我创建的时候用的是Button,我输入button时就给我报错了
from PySide2.QtWidgets import QApplication, QMessageBoxfrom PySide2.QtUiTools import QUiLoader #导入相关的类from PySide2.QtCore import QFileclass 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_()
就是我们刚刚创建的页面,以后使用的时候直接复制过来就可以了,把对应的功能按键加上就行了。