Python 图书管理系统:图书操作界面及读者信息查询
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 创建一个图书管理系统的操作界面,并实现根据借书证号查询读者信息的功能。它包含以下主要内容:
- 界面设计: 使用 PyQt5 构建了图书操作界面,包括输入书名、搜索、添加图书、修改图书、删除图书和返回等功能。
- 数据库连接: 使用 sqlite3 连接到名为 'library.db' 的数据库,并查询 LReader 表获取读者信息。
- 读者信息查询: 实现了根据表格中当前选中行的借书证号查询读者信息的功能。如果查询到信息,则弹出一个包含读者信息的弹窗;否则,显示一个警告弹窗提示未找到该借书证号对应的读者信息。
本代码示例可以作为学习使用 Python 和 PyQt5 进行界面开发的参考,并了解如何将数据库与 GUI 应用程序进行交互。
原文地址: https://www.cveoy.top/t/topic/oQWr 著作权归作者所有。请勿转载和采集!