『pyqt5 从0基础开始项目实战』07. 次数清零与多行数据删除(保姆级图文)

目录

    • 导包和框架代码
  • 次数清零
    • 按钮添加绑定事件
    • 实现数据清零
  • 数据删除
    • 按钮添加绑定事件
    • 实现删除功能
    • 完整代码
    • 总结


欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中
欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中

导包和框架代码

请查阅上文获取源码,此处只列举第三方库

import os
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QHBoxLayout, QVBoxLayout
from PyQt5.QtWidgets import QPushButton, QLineEdit, QTableWidget, QTableWidgetItem, QLabel
from PyQt5.QtWidgets import QMessageBox, QMenu

次数清零

按钮添加绑定事件

    def init_footer(self):
		···
        btn_reset_count = QPushButton("次数清零")
        btn_reset_count.clicked.connect(self.event_reset_count_click)
        footer_layout.addWidget(btn_reset_count)
        ···

实现数据清零

    # 点击数量清零
    def event_reset_count_click(self):
        # 1.获取已经选中的行
        row_list = self.table_widget.selectionModel().selectedRows()
        if not row_list:
            QMessageBox.warning(self, "错误", "请选择要操作的行")
            return
        # 2.获取每一行进行重新初始化
        for row_object in row_list:
            index = row_object.row()
            # print("选中的行:", index)
            # # 获取信号
            # asin = self.table_widget.item(index, 0).text().strip()

            # 状态重新初始化
            cell_status = QTableWidgetItem(str(0))#得到一个字符串格式的 0
            cell_status.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
            self.table_widget.setItem(index, 4, cell_status)#设置成功次数清零

            cell_status = QTableWidgetItem(str(0))#得到一个字符串格式的 0
            cell_status.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
            self.table_widget.setItem(index, 5, cell_status)#设置503次数清零
  • 数据清零前
    『pyqt5 从0基础开始项目实战』07. 次数清零与多行数据删除(保姆级图文)_第1张图片
  • 数据清零后
    『pyqt5 从0基础开始项目实战』07. 次数清零与多行数据删除(保姆级图文)_第2张图片

数据删除

按钮添加绑定事件

btn_delete 绑定事件

    def init_footer(self):
		···
        btn_delete = QPushButton("删除检测项")
        btn_delete.clicked.connect(self.event_delete_click)
        footer_layout.addWidget(btn_delete)
        ···

实现删除功能

  • 这里要着重说明一下为什么要翻转列表,假设有 0 1 2 3 这四行数据,我们选中了要删除 1 2 这两行的的数据,我们for循环删除了第1 行的数据,此时数据的索引值变了,我们for循环遍历要删除第2行数据时,第2行数据是原来的第3行数据,会导致删除了错误的数据。

  • 如果我们翻转了列表,排序为 3 2 1 0 行的数据,我们的删除会先删掉第2行的数据,然后再删除第1行的数据,

  • 先删除掉行号大的数据,然后在删除行号小的数据,避免删除行号小的数据变动行号大的数据。

『pyqt5 从0基础开始项目实战』07. 次数清零与多行数据删除(保姆级图文)_第3张图片

  • 删除了原来的 1 2 行数据结果
    『pyqt5 从0基础开始项目实战』07. 次数清零与多行数据删除(保姆级图文)_第4张图片

完整代码


总结

大家喜欢的话,给个,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中
欢迎关注 『pyqt5 从0基础开始项目实战』 专栏,持续更新中
『未完待续』


你可能感兴趣的:(python,qt,python,开发语言,pyqt5,GUI)