PyQt5如何实现数据的增删改查功能
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"PyQt5如何实现数据的增删改查功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"PyQt5如何实现数据的增删改查功能"文章能帮助大家解决问
千家信息网最后更新 2025年11月07日PyQt5如何实现数据的增删改查功能
这篇文章主要介绍"PyQt5如何实现数据的增删改查功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"PyQt5如何实现数据的增删改查功能"文章能帮助大家解决问题。

话不多说,还是先来梳理一下需要的第三方模块。
PyQ5 的UI界面布局部分,同样是还是使用这三个模块就够了。
from PyQt5.QtGui import *from PyQt5.QtWidgets import *from PyQt5.QtCore import *
将sys模块导入到代码块中,用于main函数里面的主体循环时使用。
import sys
add_dialog是一个自己写的添加数据的弹框。
from add_dialog import AddDialog
创建好DataManage类,主要用来实现主窗口页面的UI布局。
class DataManage(QWidget): def __init__(self): super(DataManage, self).__init__() self.data_list = [] self.init_ui() def init_ui(self): '''全局设置''' self.setWindowIcon(QIcon('数据.ico')) self.setWindowTitle('数据管理器') self.resize(550, 400) grid = QGridLayout() '''菜单设置''' self.add_btn = QPushButton() self.add_btn.setText('添加数据') self.add_btn.clicked.connect(self.add_btn_click) self.del_btn = QPushButton() self.del_btn.setText('删除数据') self.del_btn.clicked.connect(self.del_data_row) self.query_btn = QPushButton() self.query_btn.setText('查询') self.query_btn.clicked.connect(self.query_data_list) '''数据列表设置''' self.data_table = QTableWidget() COLUMN = 5 ROW = 0 self.data_table.setColumnCount(COLUMN) self.data_table.setRowCount(ROW) h_table_header = ['序号', '姓名', '年龄', '班级', '表现'] self.data_table.setHorizontalHeaderLabels(h_table_header) self.data_table.verticalHeader().setVisible(False) self.data_table.setShowGrid(True) self.data_table.setEditTriggers(QTableWidget.NoEditTriggers) self.data_table.setSelectionBehavior(QTableWidget.SelectRows) self.data_table.setSelectionMode(QTableWidget.SingleSelection) for index in range(self.data_table.columnCount()): headItem = self.data_table.horizontalHeaderItem(index) headItem.setTextAlignment(Qt.AlignVCenter) '''加入布局''' grid.addWidget(self.add_btn, 0, 0, 1, 1) grid.addWidget(self.del_btn, 0, 1, 1, 1) grid.addWidget(self.query_btn, 0, 2, 1, 1) grid.addWidget(self.data_table, 1, 0, 1, 3) self.setLayout(grid)定义需要的槽函数,通过不同按钮的信号绑定相应的槽函数从而来实现该按钮需要绑定的事件来实现业务逻辑。
# 将新增数据的按钮绑定到该槽函数 def add_btn_click(self): ''' 打开新增数据的弹框模块 :return: ''' AddDialog.get_add_dialog(self) # 将查询数据的按钮绑定到该槽函数 def query_data_list(self): ''' 查询数据、并将数据展示到主窗口的数据列表中 :return: ''' data = self.data_list if len(data) != 0 and len(data[0]) != 0: self.data_table.setRowCount(len(data)) self.data_table.setColumnCount(len(data[0])) for i in range(len(data)): for j in range(len(data[0])): self.data_table.setItem(i, j, QTableWidgetItem(str(data[i][j]))) # 将删除数据按钮绑定到该槽函数 def del_data_row(self): ''' 删除某一行的数据信息 :return: ''' row_select = self.data_table.selectedItems() print(row_select) if len(row_select) != 0: row = row_select[0].row() print(row) self.data_table.removeRow(row) del self.data_list[row] print(self.data_table)
通过 main() 函数来启动整个应用程序。
if __name__ == '__main__': app = QApplication(sys.argv) main = DataManage() main.show() sys.exit(app.exec_())
最后,将新增数据时自定义的弹框模块的代码分享一下。这个模块就是为了自定弹框单独写的一个模块,通过在主窗口直接调用该模块实现的弹框函数就能实现一个弹框的功能。
创建一个 add_dialog.py 的文件,将下面的代码块放到里面即可。
from PyQt5.QtWidgets import *class AddDialog(QDialog): def __init__(self, parent=None): super(AddDialog, self).__init__(parent) self.init_ui(parent) def init_ui(self,parent): '''水平布局''' hbox = QHBoxLayout() self.save_btn = QPushButton() self.save_btn.setText('保存') self.save_btn.clicked.connect(lambda :self.save_btn_click(parent)) self.cancel_btn = QPushButton() self.cancel_btn.setText('取消') self.cancel_btn.clicked.connect(self.cancel_btn_click) hbox.addWidget(self.save_btn) hbox.addWidget(self.cancel_btn) '''表单布局''' fbox = QFormLayout() self.seq_lab = QLabel() self.seq_lab.setText('序号:') self.seq_text = QLineEdit() self.seq_text.setPlaceholderText('请输入序号') self.name_lab = QLabel() self.name_lab.setText('姓名:') self.name_text = QLineEdit() self.name_text.setPlaceholderText('请输入姓名') self.age_lab = QLabel() self.age_lab.setText('年龄:') self.age_text = QLineEdit() self.age_text.setPlaceholderText('请输入年龄') self.class_lab = QLabel() self.class_lab.setText('班级:') self.class_text = QLineEdit() self.class_text.setPlaceholderText('请输入班级') self.socre_lab = QLabel() self.socre_lab.setText('表现:') self.socre_text = QLineEdit() self.socre_text.setPlaceholderText('请输入表现') fbox.addRow(self.seq_lab,self.seq_text) fbox.addRow(self.name_lab, self.name_text) fbox.addRow(self.age_lab, self.age_text) fbox.addRow(self.class_lab, self.class_text) fbox.addRow(self.socre_lab, self.socre_text) vbox = QVBoxLayout() vbox.addLayout(fbox) vbox.addLayout(hbox) self.setLayout(vbox) def save_btn_click(self,parent): if self.seq_text.text().strip() != '' and self.name_text.text().strip() != '' \ and self.age_text.text().strip() != ''and self.class_text.text().strip() != '' \ and self.socre_text.text().strip() != '' : print(parent.data_list) data = [self.seq_text.text(), self.name_text.text(), self.age_text.text(), self.class_text.text(), self.socre_text.text()] parent.data_list.append(data) print(parent.data_list) parent.query_data_list() self.close() def cancel_btn_click(self): self.close() @staticmethod def get_add_dialog(parent=None): dialog = AddDialog(parent) return dialog.exec()关于"PyQt5如何实现数据的增删改查功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
数据
函数
模块
布局
按钮
输入
功能
代码
姓名
年龄
序号
班级
知识
查询
不同
行业
还是
实用
一行
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
学网络安全可以不考研吗
光纤传播与网络技术电子书
湖北pdu服务器专用电源直销
网络技术公司发展立足点
梅氏字辈数据库
网络安全售前工程师越看越吃香
自动生成json数据库
java服务器脚本语言
永济网络技术团队
固态硬盘能提高数据库效率吗
软件开发常用图标下载
西安市服务器托管公司哪家好
网络安全评价趋势
软件开发之做网站行不
原神服务器一天多少钱
专业管理软件开发哪家公司好
rose数据库怎么画
计算机网络技术专业的学费
为什么下载不了数据库驱动
网络技术专业相关的词汇
天下手游连接服务器
人工智能网络技术前景
客户端与服务器端口连接
网络安全介绍视频
东京购物软件开发
正泰售电数据库破解
网络安全竞赛队名推荐
比较好的网络安全工程师技术学校
泰安有手机软件开发公司吗
剑侠情缘3哪个服务器好