我有QTableView
(基于模型),我想禁用特定单元格的编辑功能,比如第0行第1列。
我该怎么做?请注意,我仍然希望此行中的其他单元格可以进行编辑。
答案 0 :(得分:5)
如果您使用的是自定义表模型,则可以实现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;
}