Editare celle QTableView
-
Salve a tutti.
Sto cercando di modificare le belle di una mia TableView , la quale viene correttamente popolata, ma senza successo.La funzione che invoco è la seguente:
void p::on_pushButton_listaP_clicked() { Conn conn; QSqlQueryModel *modal = new QSqlQueryModel(); conn.connectionOpen(); QSqlQuery *qry = new QSqlQuery(conn.mydb); qry->prepare("SELECT * FROM p"); qry->exec(); modal->setQuery(*qry); ui->tableView->setModel(modal); conn.connectionClose(); }
Però nonostante venga popolata la tabella i campi non sono editabili. Premetto che la tabella è fatta con il designer ma la spunta su "NoEditTriggers" non c'è...
Qualcuno sa darmi un hint su dove sbalgio? Grazie :)
-
Prima riga della documentazione di QSqlQueryModel:
The QSqlQueryModel class provides a read-only data model for SQL result sets.
QSqlQueryModel non e' modificabile.
Visto che usi
SELECT *
potresti usare QSqlTableModel che e' editabile e le tue modifiche possono essere passate al database direttamenteQSqlTableModel *model = new QSqlTableModel(this,conn.mydb); model->setTable("p"); model->select();
P.S.
Se usi new o ti ricordi di usare delete o (se e' un QObject passagli un parent) -
Grazie mille, mi hai chierito tutto ed ho risolto il problema!