QAbstractTableModel设置单元格无法选中
时间: 2024-01-15 16:04:37 浏览: 42
要设置QAbstractTableModel中的单元格无法选中,可以在QAbstractTableModel的子类中实现flags()函数,该函数返回一个标志位,控制单元格的属性,如是否可编辑、是否可选中等。如果要设置单元格无法选中,可以在flags()函数中设置Qt::ItemIsSelectable标志位为false,如下所示:
```python
class MyTableModel(QAbstractTableModel):
def __init__(self, data, headers):
super().__init__()
self._data = data
self._headers = headers
def rowCount(self, parent=QModelIndex()):
return len(self._data)
def columnCount(self, parent=QModelIndex()):
return len(self._data[0])
def data(self, index, role=Qt.DisplayRole):
if role == Qt.DisplayRole:
return self._data[index.row()][index.column()]
return QVariant()
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return self._headers[section]
return QVariant()
def flags(self, index):
return Qt.ItemIsEnabled | Qt.ItemIsEditable # 可以编辑,不能选中
```
这样,QAbstractTableModel中的单元格就无法选中了。