Partage
  • Partager sur Facebook
  • Partager sur Twitter

PROGRAMMATION MVC Qt

Insertion d'une requête dans une vue

    20 mai 2019 à 15:13:52

    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();
    }
    
       





    • Partager sur Facebook
    • Partager sur Twitter
    RL

    PROGRAMMATION MVC Qt

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown