在QTableWidget中,可以通过设置单元格的Item为可编辑或只读来实现特定单元格的编辑和其他单元格的只读。
以下是一种方法:
下面是一个示例代码:
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
def make_cell_editable(table, row, column):
item = QTableWidgetItem(table.item(row, column))
item.setFlags(Qt.ItemIsEditable)
table.setItem(row, column, item)
def make_cell_readonly(table, row, column):
item = QTableWidgetItem(table.item(row, column))
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
table.setItem(row, column, item)
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
table = QTableWidget(3, 3)
table.setHorizontalHeaderLabels(['Column 1', 'Column 2', 'Column 3'])
# 设置特定单元格为可编辑
make_cell_editable(table, 0, 0)
# 设置其他单元格为只读
for row in range(table.rowCount()):
for column in range(table.columnCount()):
if row != 0 or column != 0:
make_cell_readonly(table, row, column)
layout.addWidget(table)
window.setLayout(layout)
window.show()
app.exec_()
在上面的示例中,我们创建了一个3x3的QTableWidget,并将第一个单元格设置为可编辑,其他单元格设置为只读。你可以根据实际需求修改行数、列数和特定单元格的位置。
注意:这只是一种实现方法,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云