我有一个QTableView
(基于模型的)并且我想禁用特定单元格的编辑功能,比如说第 0 行第 1 列。
我怎样才能做到这一点?请注意,我仍然希望启用此行中的其他单元格进行编辑。
如果您使用的是自定义表格模型,则可以实现该Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const
方法并返回一组标志,其中Qt::ItemIsEditable
未为您不想编辑的单元格设置标志。假设MyTableModel
继承自QAbstractTableModel
:
Qt::ItemFlags MyTableModel::flags ( const QModelIndex & index ) const {
Qt::ItemFlags flags = Qt::NoItemFlags;
if (index.row() == 0 && index.column() == 1) {
return flags;
}
return flags | Qt::ItemIsEditable;
}