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 direttamente

    QSqlTableModel *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!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.