PyQT5入门案例(一)工资统计系统

此博客只为记录学习PyQT5过程中的一些学习笔记,学习资源使用的是如下视频:

一个简单的例子_哔哩哔哩_bilibili

代码和相关学习的知识点都是参考上述视频

接下来我们要开发我们的第一个python GUI,统计如下人员工资在2W以上和2W以下的人员的总数

统计数据:

可以自行制作,也可以直接复制:

薛蟠     4560 25
薛蝌     4460 25
薛宝钗   35776 23
薛宝琴   14346 18
王夫人   43360 45
王熙凤   24460 25
王子腾   55660 45
王仁     15034 65
尤二姐   5324 24
贾芹     5663 25
贾兰     13443 35
贾芸     4522 25
尤三姐   5905 22
贾珍     54603 35

当然,如何修改handleCalc这个函数里面修改即可,这里只讲述GUI的制作方法,具体数据提取过程不讲述

未整合成对象的源代码:

代码GUI设置部分注释很详细,有问题可以在评论中指出

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit, QMessageBox # 导入相应的库,应用程序,主窗口,按钮,纯文本的编辑框,信息窗口


def handleCalc():
    print('统计按钮被点击了')
    info = 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(window,
                '统计结果',
                f'''薪资20000 以上的有:\n{salary_above_20k}
                \n薪资20000 以下的有:\n{salary_below_20k}'''
                )



app = QApplication([]) #创建一个底层管理程序,传入空的(默认)

window = QMainWindow()#申请主窗口对象
window.resize(500, 400)   #定义主窗口外观大小 , 500像素宽度,400像素宽度
window.move(300, 310)    #程序窗口左上角在显示器的位置,可以理解成你的gui出现在屏幕的位置(坐标)
window.setWindowTitle('薪资统计')  #设置窗口标题栏

textEdit = QPlainTextEdit(window) #创建一个纯文本控件,传入第一个界面作为主控件
textEdit.setPlaceholderText("请输入薪资表")#提示文本
textEdit.move(10,25) #标题相对于第一个主控件的位置坐标 (10像素 , 25像素)
textEdit.resize(300,350)# 定于窗口大小

button = QPushButton('统计', window) #定于统计按钮
button.move(380,80)#相对于第一个 windows主控件的位置
button.clicked.connect(handleCalc)

window.show() #显示窗口

app.exec_() #循环显示界面,等待用户指令

程序运行过程:

点击run,运行程序

 从我的博客上复制数据,进行数据输入,也可以自己制作自己的数据

 鼠标点击统计

 输入结果

      考虑到我们写GUI的过程中一个窗口的内容,就使用了大量的全局变量。这样对于我们对自己的GUI进行复杂功能拓展的时候,会导致需要设置较多的全局变量,从而导致我们的代码变的非常乱,和复杂。因此我们需要将一个或者一类的功能封装成一个对象。

封装对象代码:

代码跟上部分未封装的部分一模一样,只是封装成对象方便调用和管理,不懂的地方可以看上部分代码的注释, 代码实现的功能与上部分代码一样。

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_()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馨馨的小翟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值