Qt - 禁用单元格编辑

时间:2012-09-21 06:52:33

标签: c++ qt

我有QTableView(基于模型),我想禁用特定单元格的编辑功能,比如第0行第1列。

我该怎么做?请注意,我仍然希望此行中的其他单元格可以进行编辑。

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;
}