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

        # 创建界面控件
        self.label_bookname = QLabel('输入书名:')
        self.edit_bookname = QLineEdit()
        self.btn_search = QPushButton('搜索')
        self.table_book = QTableWidget(7,8)
        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('删除图书')
        self.btn_back_1 = QPushButton('返回')
        # 设置信号槽连接
        self.btn_search.clicked.connect(self.search_bookname)
        self.btn_add_book.clicked.connect(self.add_book)
        self.btn_alter_book.clicked.connect(self.alter_book)
        self.btn_del_book.clicked.connect(self.del_book)
        self.btn_back_1.clicked.connect(self.back_1)

        # 将控件添加到布局中
        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)
        layout1.addWidget(self.btn_back_1, 3, 1)

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

    def back_1(self):        
        # 获取当前选中行的最后一列(借书证号)
        current_row = self.table_book.currentRow()
        reader_id = str(self.table_book.item(current_row, 7).text())
        
        # 根据借书证号在LReader表中查询读者信息
        conn = sqlite3.connect('library.db')
        cursor = conn.cursor()
        cursor.execute('SELECT * FROM LReader WHERE ReaderID=?', (reader_id,))
        reader_info = cursor.fetchone()
        conn.close()

        # 弹窗显示读者信息
        if reader_info:
            QMessageBox.information(self, '读者信息', '借书证号:{}
姓名:{}
性别:{}
联系方式:{}'.format(reader_info[0], reader_info[1], reader_info[2], reader_info[3]))
        else:
            QMessageBox.warning(self, '读者信息', '未找到该借书证号对应的读者信息!')

该代码演示了如何使用 Python 和 PyQt5 创建一个图书管理系统的操作界面,并实现根据借书证号查询读者信息的功能。它包含以下主要内容:

  1. 界面设计: 使用 PyQt5 构建了图书操作界面,包括输入书名、搜索、添加图书、修改图书、删除图书和返回等功能。
  2. 数据库连接: 使用 sqlite3 连接到名为 'library.db' 的数据库,并查询 LReader 表获取读者信息。
  3. 读者信息查询: 实现了根据表格中当前选中行的借书证号查询读者信息的功能。如果查询到信息,则弹出一个包含读者信息的弹窗;否则,显示一个警告弹窗提示未找到该借书证号对应的读者信息。

本代码示例可以作为学习使用 Python 和 PyQt5 进行界面开发的参考,并了解如何将数据库与 GUI 应用程序进行交互。


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

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