Python PyQt5 图书管理系统:实现图书删除功能

本教程将向您展示如何使用 Python PyQt5 开发图书管理系统,并实现删除图书的功能。我们将使用 QTableWidget 显示图书信息,并通过点击删除按钮来删除选中的图书,同时更新数据库和界面显示。

1. 代码示例:

from PyQt5.QtWidgets import QMainWindow, QLabel, QLineEdit, QPushButton, QTableWidget, QMessageBox, QWidget, QGridLayout
from db_helper import DBHelper  # 导入数据库操作类

class Oper_Book_Window(QMainWindow):
    def __init__(self, parent=None):
        super(Oper_Book_Window, self).__init__(parent)
        self.setWindowTitle('图书操作界面')
        self.resize(400, 300)

        # 创建界面控件
        self.label_bookname = QLabel('输入书名:')
        self.edit_bookname = QLineEdit()
        self.btn_search = QPushButton('搜索')
        self.table_book = QTableWidget(5, 7)
        self.table_book.setHorizontalHeaderLabels(['图书ID', '书名', '作者', '出版社', '出版日期', '价格', '是否借出'])
        
        self.label_choose_oper = QLabel('选择操作')
        self.btn_add_book = QPushButton('添加图书')
        self.btn_alter_book = QPushButton('修改选中图书')
        self.btn_del_book = QPushButton('删除图书')
        
        # 将控件添加到布局中
        layout1 = QGridLayout()
        layout1.addWidget(self.label_bookname, 0, 0)
        layout1.addWidget(self.btn_add_book, 0, 1)
        layout1.addWidget(self.edit_bookname, 1, 0)
        layout1.addWidget(self.btn_alter_book, 1, 1)
        layout1.addWidget(self.btn_search, 2, 0)
        layout1.addWidget(self.btn_del_book, 2, 1)
        layout1.addWidget(self.table_book, 3, 0)

        self.centralWidget = QWidget()
        self.centralWidget.setLayout(layout1)
        self.setCentralWidget(self.centralWidget)

        # 连接按钮信号与槽函数
        self.connect_slot()

    def delete_book(self):
        # 获取选中行的行号
        selected_row = self.table_book.currentRow()
        if selected_row < 0:
            QMessageBox.warning(self, '警告', '请先选择要删除的图书')
            return
        book_id = self.table_book.item(selected_row, 0).text()

        # 从数据库中删除该图书信息
        db = DBHelper()
        db.delete_book(book_id)

        # 从QTableWidget中删除该行
        self.table_book.removeRow(selected_row)

    def connect_slot(self):
        self.btn_del_book.clicked.connect(self.delete_book)

2. 代码说明:

  • delete_book 方法:
    • 获取 QTableWidget 中选中行的行号。
    • 如果没有选中行,则弹出警告信息并返回。
    • 获取选中行中图书 ID 的文本值。
    • 使用 DBHelper 类从数据库中删除该图书信息。
    • QTableWidget 中删除该行。
  • connect_slot 方法:
    • btn_del_book 按钮的点击信号连接到 delete_book 方法。

3. 运行程序:

在程序运行后,您可以选择要删除的图书,然后点击删除按钮,程序将从数据库和界面中删除该图书。

4. 注意:

  • 请确保已安装 PyQt5 库。
  • DBHelper 类是一个用于操作数据库的类,您需要根据您的数据库类型实现该类。
  • 这只是一个简单的示例,您可以根据您的需要进行扩展和修改。

5. 总结:

本文介绍了如何使用 Python PyQt5 开发图书管理系统,并实现删除图书的功能。通过使用 QTableWidgetQMessageBox,我们可以方便地进行用户交互和数据操作。

希望本文能够帮助您更好地理解 PyQt5 的使用,并为您的项目提供一些参考。

Python PyQt5 图书管理系统:实现图书删除功能

原文地址: https://www.cveoy.top/t/topic/oPfQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录