2012-09-21 107 views
3

我有一个QTableView(基于模型的),我想禁用特定细胞的编辑功能的禁止编辑,让我们说行0,列1的Qt - 细胞

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

回答

4

如果您使用的是自定义表格模型,则可以实施Qt::ItemFlags QAbstractItemModel::flags (const QModelIndex & index) const方法并返回一组标志,其中未针对不希望编辑的单元格设置Qt::ItemIsEditable标志。假设MyTableModelQAbstractTableModel继承:

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

@Indraraj - 你或许应该在这里写关于你提出的更改的注释。我几乎拒绝了它。 –