from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit,QMessageBox
class Stats():
def __init__(self):
self.window = QMainWindow()
self.window.resize(500, 400)
self.window.move(300, 300)
self.window.setWindowTitle('薪资统计')
self.textEdit = QPlainTextEdit(self.window)
self.textEdit.setPlaceholderText("请输入薪资表")
self.textEdit.move(10, 25)
self.textEdit.resize(300, 350)
self.button = QPushButton('统计', self.window)
self.button.move(380, 80)
self.button.clicked.connect(self.handleCalc)
def handleCalc(self):
info = self.textEdit.toPlainText()
# 薪资20000 以上 和 以下 的人员名单
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.window,
'统计结果',
f'''薪资20000 以上的有:\n{salary_above_20k}
\n薪资20000 以下的有:\n{salary_below_20k}'''
)
app = QApplication([])
stats = Stats()
stats.window.show()
app.exec_()
def __init__(self)函数中:
1、定义
定义主窗口:window = QMainWindow()
定义文本框:textEdit = QPlainTextEdit(self.window)
定义按钮:button = QPushButton('统计', self.window)
2、具体的属性:
resize表示窗口的大小,move表示相对于父类窗口的位置
window.setWindowTitle('薪资统计')
textEdit.setPlaceholderText("请输入薪资表")
为表示窗口的名字
3、按钮的使用:
self.button.clicked.connect(self.handleCalc)表示当按钮按下的时候会发出一个信号,信号连接到handleCalc这个函数(函数被叫做槽)
信号( signal ):一个事件(比如被点击、被输入文本、被鼠标拖拽)发生了。
槽(slot):处理 signal 的函数 。
connect表示当信号发生的时候,让slot,即函数来处理
handleCalc函数中:QMessageBox.about会弹出对话窗口,显示相对应的内容