Python Qt 读者操作界面: QTableWidget 不可更改列设置
Python Qt 读者操作界面: QTableWidget 不可更改列设置
本代码示例展示了如何使用 Python Qt 框架中的 QTableWidget 创建一个读者操作界面,并设置第一列不可更改,其他列可编辑。
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('返回')
# 设置 QTableWidget 属性
self.table_reader.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.table_reader.setEditTriggers(QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
self.table_reader.setSelectionBehavior(QAbstractItemView.SelectRows)
# 设置第一列不可更改
for row in range(self.table_reader.rowCount()):
item = QTableWidgetItem()
item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable)
self.table_reader.setItem(row, 0, item)
代码解析:
-
创建 QTableWidget:
self.table_reader = QTableWidget(5, 7)创建一个 5 行 7 列的表格。self.table_reader.setHorizontalHeaderLabels([...])设置表格列标题。
-
设置表格属性:
self.table_reader.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)设置列宽自适应。self.table_reader.setEditTriggers(...)设置表格编辑模式:双击或按回车键进行编辑。self.table_reader.setSelectionBehavior(QAbstractItemView.SelectRows)设置选择模式:选择整行。
-
设置第一列不可更改:
- 使用循环遍历表格所有行。
item = QTableWidgetItem()创建一个表格项。item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable)设置表格项不可编辑。self.table_reader.setItem(row, 0, item)将不可编辑的表格项设置到第一列。
注意:
- 确保已导入必要的 Qt 库 (
from PyQt5.QtWidgets import *)。 - 该代码示例只展示了设置第一列不可更改,你可以根据需要修改其他列的编辑属性。
- 可以根据实际需要调整表格的行数和列数。
- 为了完整运行代码,你需要完成界面布局和添加其他控件的代码。
原文地址: https://www.cveoy.top/t/topic/oPLf 著作权归作者所有。请勿转载和采集!