qtableview设置某一列不可编辑
时间: 2023-05-08 16:57:29 浏览: 561
QTableWidget 设置某一列禁止编辑
在使用QTableView时,可以通过设置model,在Model中将某一列设置为只读,从而实现该列不可编辑的效果。
可以通过以下代码来实现该功能:
```python
# 获取要设置为只读的列号
readonly_column = 1
# 设置model中的某一列为只读
class CustomModel(QStandardItemModel):
def flags(self, index: QModelIndex) -> Qt.ItemFlags:
if index.column() == readonly_column:
return super().flags(index) & ~Qt.ItemIsEditable
return super().flags(index)
# 在创建model时使用自定义model
model = CustomModel()
# 将model设置给TableView
table_view.setModel(model)
```
上述代码中,我们继承了QStandardItemModel,重写了flags函数,并在该函数中使用了位运算来设置只读标记。这样,在数据绑定到TableView中时,该列就会显示为只读。
总之,通过在Model中重写flags函数,并针对需要只读的列进行特殊处理,可以实现TableView中某一列不可编辑的效果。
阅读全文