Python PyQt5 读者操作界面开发:实现表格第一列不可编辑

本文将介绍如何使用 Python PyQt5 开发一个简单的读者操作界面,并重点讲解如何设置 QTableWidget 的第一列为只读,防止用户修改借书证号。

代码示例

from PyQt5.QtWidgets import QMainWindow, QLabel, QLineEdit, QPushButton, QTableWidget, QAbstractItemView, QStyledItemDelegate

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

        # 创建界面控件
        self.label_readerName = QLabel('输入姓名:')
        self.edit_readerName = QLineEdit()
        self.btn_search_readerName = QPushButton('搜索')
        self.table_reader = QTableWidget(5, 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.table_reader.setEditTriggers(QAbstractItemView.NoEditTriggers)  # 设置为不可编辑
        self.table_reader.setItemDelegateForColumn(0, QStyledItemDelegate()) # 设置第一列为只读

代码解析

  1. 创建 QTableWidget: 使用 QTableWidget(5, 7) 创建一个 5 行 7 列的表格,并设置列标题。
  2. 设置不可编辑: 使用 setEditTriggers(QAbstractItemView.NoEditTriggers) 将表格设置为不可编辑状态。
  3. 设置第一列只读: 使用 setItemDelegateForColumn(0, QStyledItemDelegate()) 将第一列设置为只读,允许用户查看但无法修改借书证号。

总结

通过以上代码,我们成功地实现了 QTableWidget 的第一列不可编辑的功能,保证了借书证号的完整性和安全性。你可以根据自己的需求进行进一步的调整和扩展。

Python PyQt5 读者操作界面开发:实现表格第一列不可编辑

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

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