我来演示一个最简单的方法,没有使用CSS3样式吼。看完这篇回答,我相信十分钟你就能搞定一个展示表格的交互页面了。然后惊呼,perfect!

码字不易,欢迎点赞收藏支持下~~~
在这里插入图片描述

1.使用的python模块

数据处理:pandas,数据处理我只喜欢用pandas,数据处理最强的模块之一。而且操作excel也非常方便。
在这里插入图片描述
界面设计:PyQt模块,这个界面个人感觉是python中界面设计最好用的模块,既可以使用窗口设计界面,又能使用CSS样式。

2.界面设计

2.1打开PyQt designer界面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三步成界面,是不是很简单,哈哈,你没看错,设计一个界面就是这么的简单,当然我没有调整样式哈,所以看起来很丑。
在这里插入图片描述
2.2 运行界面

界面的运行也很简单,都是固定的格式,跟下面保持一致即可,运行的结果如下图所示:from PyQt5

import QtCore
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
import sys

# 导入所画的界面
from Ui_table import Ui_MainWindow

# 自定义类

class Tables(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

# 运行界面
if __name__ == "__main__":
    app = QApplication(sys.argv)
    tables = Tables()
    tables.show()
    sys.exit(app.exec_())

在这里插入图片描述

是不是在想,我要的是交互界面,你就给我展示了个这?距离我想要的还有十万八千里呢

在这里插入图片描述
截止目前,是不是都很简单?那么下面重点就要来了,数据读取和数据展示,以及交互的部分,赶紧打起精神来,准备实践了。
在这里插入图片描述

3.界面交互

如下面的代码所示,主要包含四个函数:

  1. 一个是用来设置表格的基本参数,比如,列数,行数,列标签,还有就是表格的显示样式;
  2. 当表格的内容发生改变时,获取改变单元格的内容,行数和列数;
  3. 数据读取,读取数据,存在self.df中,并获取行标签和列标签;
  4. 保存数据,点击按钮时,绑定数据。

显示结果如下图所示:

from PyQt5 import QtCore
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
import sys
import pandas as pd

# 导入所画的界面
from Ui_table import Ui_MainWindow

# 自定义类
class Tables(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        # 运行数据读取函数
        self.dataprocess()
        # 运行tableWidget初始化函数
        self.initialize()
        # 运行按钮的点击事件
        self.saveButton.clicked.connect(self.save)

    # 定义表格的初始化参数
    def initialize(self):
        # 设置表格行数和列数
        self.tableWidget.setRowCount(len(self.rows))
        self.tableWidget.setColumnCount(len(self.columns))
        # 设置表格的列标签
        self.tableWidget.setHorizontalHeaderLabels(self.columns)
        # 重新设置表格区域的大小
        self.tableWidget.setGeometry(QtCore.QRect(220, 120, 1000, 800))
        # 将数据显示在表格中
        for i in range(len(self.rows)):
            for j in range(len(self.columns)):
                data = QTableWidgetItem(str(self.df.iloc[i][j]))
                self.tableWidget.setItem(i, j, data)
        # 列宽随着内容调整
        self.tableWidget.resizeColumnsToContents()
        # 行宽随着内容调整
        self.tableWidget.resizeRowsToContents()
        # 表格颜色交错显示
        self.tableWidget.setAlternatingRowColors(True)
        # 将表格中单元格改变时,触发tableChange事件
        self.tableWidget.itemChanged.connect(self.tableChange)

    # 当表格的内容改变时获取内容
    def tableChange(self, item):
        text = item.text()
        itemrow = item.row()
        itemcol = item.column()
        self.df.iloc[itemrow][itemcol] = text

    # 数据读取
    def dataprocess(self):
        self.df = pd.read_excel('美团商户信息.xlsx')
        # 获得数据的行标签和列标签
        self.columns = self.df.columns
        self.rows = self.df.index

    # 保存数据
    def save(self):
        self.df.to_excel('美团商户信息.xlsx', index=False)


# 运行界面
if __name__ == "__main__":
    app = QApplication(sys.argv)
    tables = Tables()
    tables.show()
    sys.exit(app.exec_())

在这里插入图片描述
是不是这个界面距离你想要的就很近了,就差一个交互测试了?
在这里插入图片描述

4.界面交互测试

如下图所示,修改界面的前两个位置的内容,然后点击保存,打开excel就可以看到,excel中的内容已经修改了。这样就大功告成了。
在这里插入图片描述
在这里插入图片描述

最后:关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

五、Python练习题

检查学习结果。
在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐