Python Qt 读者操作界面设计与数据库交互

本代码展示了使用 Python 的 Qt 库设计一个简单的读者操作界面,并演示了如何与数据库进行交互,实现读者信息查询、添加、修改和删除功能。

class Oper_Reader_Window(QMainWindow):
    def __init__(self, privilege, parent=None):
        super(Oper_Reader_Window, self).__init__(parent)
        self.privilege = privilege
        self.setWindowTitle('读者操作界面')
        self.resize(900, 300)

        # 创建界面控件
        self.label_readerName = QLabel('输入姓名:')
        self.edit_readerName = QLineEdit()
        self.btn_search_readerName = QPushButton('搜索')
        self.table_reader = QTableWidget(7, 7)
        self.table_reader.setHorizontalHeaderLabels(['借书证号', '姓名', '性别', '出生年月', '借书量', '联系方式', '备注'])

        self.label_choose_operReader = QLabel('选择操作')
        self.btn_add_reader = QPushButton('添加读者')
        self.btn_alter_reader = QPushButton('修改选中读者')
        self.btn_del_reader = QPushButton('删除读者')
        self.btn_back_2 = QPushButton('返回')

        # 设置信号槽连接
        self.btn_search_readerName.clicked.connect(self.search_readerName)
        self.btn_add_reader.clicked.connect(self.add_reader)
        self.btn_alter_reader.clicked.connect(self.alter_reader)
        self.btn_del_reader.clicked.connect(self.del_reader)
        self.btn_back_2.clicked.connect(self.back_2)

        # 将控件添加到布局中
        layout1 = QGridLayout()
        layout1.addWidget(self.label_readerName, 0, 0)
        layout1.addWidget(self.btn_add_reader, 0, 1)
        layout1.addWidget(self.edit_readerName, 1, 0)
        layout1.addWidget(self.btn_alter_reader, 1, 1)
        layout1.addWidget(self.btn_search_readerName, 2, 0)
        layout1.addWidget(self.btn_del_reader, 2, 1)
        layout1.addWidget(self.table_reader, 3, 0)
        layout1.addWidget(self.btn_back_2, 3, 1)

        self.centralWidget = QWidget()
        self.centralWidget.setLayout(layout1)
        self.setCentralWidget(self.centralWidget)
    
    def back_2(self):
        current_row = self.table_reader.currentRow()
        if current_row == -1:
            QMessageBox.warning(self, '警告', '请先选择读者')
            return
        reader_id = self.table_reader.item(current_row, 0).text()
        reader_info = db.select_reader_by_id(reader_id)
        QMessageBox.information(self, '读者信息', f'借书证号:{reader_info[0]}
姓名:{reader_info[1]}
性别:{reader_info[2]}
出生年月:{reader_info[3]}
借书量:{reader_info[4]}
联系方式:{reader_info[5]}
备注:{reader_info[6]}')

代码说明:

  1. 导入必要的库: from PyQt5.QtWidgets import *
  2. 创建窗口: class Oper_Reader_Window(QMainWindow):
  3. 初始化界面:__init__ 方法中,创建界面控件,并设置布局。
  4. 连接信号槽: 将按钮的 clicked 信号连接到相应的处理函数。
  5. back_2 函数:
    • 获取当前选中行的借书证号。
    • 调用 db.select_reader_by_id(reader_id) 函数查询数据库,获取读者信息。
    • 使用 QMessageBox.information 弹窗显示读者信息。

注意:

  • db 是一个数据库操作对象,需要根据实际情况进行定义。
  • select_reader_by_id 是一个数据库查询函数,需要根据数据库结构进行编写。

本示例代码展示了一个简单的读者操作界面的设计思路,读者可以根据自己的需求进行修改和扩展。


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

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