Qt - 禁用单元格编辑

box*_*pps 4 c++ qt

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

我怎样才能做到这一点?请注意,我仍然希望此行中的其他单元格可以进行编辑.

And*_*ter 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;
}
Run Code Online (Sandbox Code Playgroud)