【Python Qt 图形界面编程 - PySide2 PyQt5 PyQt PySide-哔哩哔哩】https://www.bilibili.com/video/BV1cJ411R7bP/?spm_id_from=333.999.0.0&vd_source=7ffa93d4a1d9a8c2d27187407eca5c89
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit,QMessageBox
# QtWidgets是pyqt中控制控件功能的包
# 导入的类QApplication(应用程序), QMainWindow(主窗口), QPushButton(按钮), QPlainTextEdit(编辑框)
class Stats(): # 将函数封装在类中,方便调用,打包
def __init__(self): # 函数的第一个参数,就必须是实例对象本身,并且建议,约定俗成,把其名字写为self
self.window = QMainWindow() # 类内创建QMainWindow类的对象
self.window.resize(500, 400) # 规定主窗口大小
self.window.move(700, 280) # 规定主窗口出现在显示器屏幕的位置
self.window.setWindowTitle('薪资统计') # 主窗口的名字
self.textEdit = QPlainTextEdit(self.window) # 创建编辑文本的对象,其父窗口为类内对象self.window
self.textEdit.setPlaceholderText("请输入薪资表") # 编辑文本的提示内容
self.textEdit.move(20, 25) # 相对于父窗口window的位置,QPlainTextEdit(window)
self.textEdit.resize(300, 350) # 指定编辑文本框的大小
self.button = QPushButton('统计', self.window) # 按钮的名字和父窗口
self.button.move(380, 80) # 按钮的位置
self.button.clicked.connect(self.handleCalc) # 翻译一下:当button被点击了之后,就连接到handleCalc函数中(运行handleCale)
# 定义一个函数,当统计按钮被点击时触发
def handleCalc(self):
info = self.textEdit.toPlainText() # 获取编辑框中的文本
# 薪资20000 以上 和 以下 的人员名单
salary_above_20k = ''
salary_below_20k = ''
for line in info.splitlines(): # 遍历文本的每一行
# a = line.strip()
# print(a)
if not line.strip(): # 如果是一行就继续
continue
parts = line.split(' ') # 通过空格将字符串拆分
# 去掉列表中的空字符串内容
parts = [p for p in parts if p] # 定义一个p,如果p不是空格,就在parts的列表中
name,salary,age = parts
if int(salary) >= 20000:
salary_above_20k += name + '\n' # 薪资高于2万的将名字放入salary_above_20k中
else:
salary_below_20k += name + '\n' # 薪资低于2万的将名字放入salary_below_20k中
QMessageBox.about(self.window, # 将输出结果显示在弹出的对话框中
'统计结果',
f'''薪资20000 以上的有:\n{salary_above_20k}
\n薪资20000 以下的有:\n{salary_below_20k}'''
)
app = QApplication([]) # 创建一个QApplication的实例化对象,提供了整个图形界面的底层管理功能
# QApplication要做如此重要的初始化操作,所以,我们必须在任何界面控件对象创建前,先创建它。
stats = Stats() # 以stats对象调用 Stats 类
stats.window.show() # 将窗口展示出来
app.exec_() # 进行程序的循环,如果不是人为点击关闭,就可以一直进行,如果没有这一句话,程序就会闪退