Rendere una cella di TableView non editable
Solved
Italian
-
Vorrei sapere se esiste la maniera di rendere non editabile uno dei campi di un record all'interno di una tableview.
Vi posto del codice di esempio.QSqlTableModel *model = new QSqlTableModel(this,db); model->setTable("Persona"); model->setEditStrategy(QSqlTableModel::OnFieldChange); model->setHeaderData(0, Qt::Horizontal, tr("Id")); model->setHeaderData(1, Qt::Horizontal, tr("Nome")); model->setHeaderData(2, Qt::Horizontal, tr("Cognome")); model->setHeaderData(3, Qt::Horizontal, tr("Telefono")); model->setHeaderData(4, Qt::Horizontal, tr("Cellulare")); model->setHeaderData(5, Qt::Horizontal, tr("Fax")); model->setHeaderData(6, Qt::Horizontal, tr("Email")); model->select();
Posso rendere non editabile i campi nome e conogme della seguente tabella?
Grazie. Spero sappiate damri un consiglio -
usa questa classe come proxy model
// FlaggableProxy* flaggableProxy flaggableProxy->setSourceModel(model); for(int colIndex : {1,2} /*Colonne che non possono essere cambiate*/) flaggableProxy->setFlagForColumn(colIndex, flaggableProxy->flagForColumn(colIndex) & (~Qt::ItemIsEditable));