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

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

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


接下来我们要开发我们的第一个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,运行程序


image.png


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


image.png


鼠标点击统计


image.png


输入结果


image.png


     考虑到我们写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_()
相关文章
|
5月前
|
Python
【python】pyqt5大学生成绩信息管理系统-图形界面(源码+报告)【独一无二】
【python】pyqt5大学生成绩信息管理系统-图形界面(源码+报告)【独一无二】
261 1
|
6月前
|
存储 C语言 索引
【实战编程】学生信息管理系统:一键实现数据插入、智能排序、精准查询与成绩统计(附完整源码,即学即用!)
结构体数组是C语言中一种复合数据类型,它结合了结构体的灵活性和数组的有序集合特性,允许你定义一组具有相同结构的数据项。结构体定义了一组不同数据类型的变量集合,而结构体数组则是这种结构的连续内存块,每个元素都是该结构类型的实例。这种方式特别适合管理具有相似属性的对象集合,如学生信息、员工记录等。
|
7月前
|
SQL 供应链 数据可视化
python每日分析练习:产品季度销售的比较分析
python每日分析练习:产品季度销售的比较分析
|
数据采集 存储 数据可视化
Python实战项目——餐厅订单数据分析(一)
Python实战项目——餐厅订单数据分析(一)
1162 0
|
8月前
|
人工智能 数据可视化 数据挖掘
【python】python员工薪资数据分析(源码+报告)【独一无二】
【python】python员工薪资数据分析(源码+报告)【独一无二】
196 1
|
8月前
|
数据挖掘 Java 程序员
用 Python 分析招聘岗位,结果 Python 薪资竟然垫底。。。
用 Python 分析招聘岗位,结果 Python 薪资竟然垫底。。。
|
数据挖掘 索引 Python
Python案例实现|租房网站数据表的处理与分析
在综合实战项目中,“北京链家网”租房数据的抓取任务已在 上一篇 完成,得到了数据表bj_lianJia.csv,如图1所示。该数据表包含ID、城区名(district)、街道名(street)、小区名(community)、楼层信息(floor)、有无电梯(lift)、面积(area)、房屋朝向(toward)、户型(model)、房租(rent)等信息。
230 1
Python案例实现|租房网站数据表的处理与分析
|
数据采集 机器学习/深度学习 数据可视化
基于Python的招聘信息可视化分析系统设计与实现-毕设参考
重要的事情说三遍,可白嫖,可白嫖,可白嫖!!! 源码下载链接:docs.qq.com/doc/DYm5DSlBWZEplalBP 该系统通过采集、处理和分析各个招聘网站上的招聘信息,并将分析结果以直观的图表、图像和统计数据的形式展示出来。这样,用户可以从一个更宏观的角度了解不同行业、职位和地区的招聘趋势,以便做出更明智的决策。
|
数据安全/隐私保护 Python
【python实现学生选课系统】
【python实现学生选课系统】
262 0
|
算法 程序员 Shell
python股票量化交易(11)---使用pyqt5构建股票交易软件主页
python股票量化交易(11)---使用pyqt5构建股票交易软件主页
918 0
python股票量化交易(11)---使用pyqt5构建股票交易软件主页