Insertion requête dans une table



  • Bonjour,

    J'ai trouvé dans la doc l'exemple suivant où un QSTRINGLIST est utilisé comme donnée. Comment faire quand on a le résultat d'une requête (mRequete) avec le code: sqlModele = new QSqlQueryModel();
    sqlModele->setQuery(*mRequete);

    Merci de votre aide.

    Voici le code de la doc:

    paystablemodel.h

    #ifndef PAYSTABLEMODEL_H
    #define PAYSTABLEMODEL_H
    
    #include <QAbstractTableModel>
    #include <QModelIndex>
    
    class PaysTableModel : public QAbstractTableModel {
    private:
    QStringList listePays;
    public:
    PaysTableModel(const QStringList &listePays, QObject *parent = 0):QAbstractTableModel(parent)
    
    {if (listePays.count() > 0) this->listePays = listePays;}
    int rowCount(const QModelIndex &parent = QModelIndex()) const
    { return this->listePays.count(); }
    int columnCount(const QModelIndex &parent = QModelIndex()) const
    { return 2;}
    // pour insérer une (future) capitale
    QVariant data(const QModelIndex &index, int role) const {
    if (! index.isValid())
    return QVariant();
    if (((unsigned int)index.row()>=this->listePays.count())||(index.column()>= 2))
    return QVariant();
    if ((role == Qt:isplayRole)) {
    if(index.column() == 0) // la première colonne = pays
    return this->listePays.at(index.row()); // retourne le nom du pays demandé
    }
    else return QVariant();
    }
    
    };
    
    
    
    #endif // PAYSTABLEMODEL_H
    

    main.cpp

    #include <QApplication>
    #include <QStringListModel>
    #include <QTableView>
    #include <QWidget>
    #include "Paystablemodel.h"
    
    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);
    QWidget Widget;
    QWidget tableWidget;
    QStringList listePays;
    listePays << "France" << "Angleterre" << "Espagne" << "Italie" << "Allemagne";
    PaysTableModel *modele = new PaysTableModel(listePays);
    QTableView *vueTable = new QTableView;
    vueTable->setModel(modele);
    vueTable->show();
    return app.exec();
    }
    
    

Log in to reply
 

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