2012-09-21 134 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 - 你或許應該在這裏寫關於你提出的更改的註釋。我幾乎拒絕了它。 –