Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Relation entre Qtableview et modele
Forum Updated to NodeBB v4.3 + New Features

Relation entre Qtableview et modele

Scheduled Pinned Locked Moved Unsolved French
qt5
2 Posts 2 Posters 725 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    lacombe
    wrote on last edited by koahnig
    #1

    Bonjour,

    Comment colorier des lignes de ma vue avec un modèle. Je ne vois pas du tout comment faire.

    Merci de votre aide, voici mon code complet. Je pense que ça manque de cohérence.

    fenetre.h

    #ifndef FENETRE_H
    #define FENETRE_H

    #include <QWidget>
    #include <QSqlDatabase>
    #include <QSqlQuery>
    #include <QSqlQueryModel>
    #include <QSqlTableModel>
    #include "monmodele.h"

    namespace Ui {
    class Fenetre;
    }

    class monModele;

    class Fenetre : public QWidget
    {
    Q_OBJECT

    public:
    explicit Fenetre(QWidget *parent = 0);
    ~Fenetre();

    void ouvrirBase();
    
    
    private:
    Ui::Fenetre *ui;
    
    QSqlQuery *mRequete;
        QSqlQueryModel *sqlModele;
        QSqlDatabase mDatabase;
         
        };
    

    #endif // FENETRE_H

    fenetre.cpp

    #include "fenetre.h"
    #include "monmodele.h"
    #include "ui_fenetre.h"

    Fenetre::Fenetre(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Fenetre)
    {
    ui->setupUi(this);
    }

    Fenetre::~Fenetre()
    {
    delete ui;
    }

    void Fenetre::ouvrirBase()
    {
    QString file = "C:\test\bd1.accdb";
    mDatabase = QSqlDatabase::addDatabase("QODBC");
    QString dataBaseString = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=" + file;
    mDatabase.setDatabaseName(dataBaseString);

              mDatabase.open();
    
              mRequete = new QSqlQuery();
                  mRequete->prepare("SELECT Numero, Nom FROM Compte WHERE Numero > 10 and Numero < 25");
    

    mRequete->exec();

    sqlModele = new QSqlTableModel;
    sqlModele->setQuery(*mRequete);

    ui->tableView->setModel(sqlModele);

     ui->tableView->show();
    

    }

    monmodele.h

    #ifndef MONMODELE_H
    #define MONMODELE_H

    #include <QObject>
    #include <QAbstractTableModel>
    #include <QColor>

    class monModele : public QAbstractTableModel
    {

    public:

       monModele(QObject *parent = 0);
    
       QVariant data ( const QModelIndex & index, int role)const;
    

    private:

    };

    #endif // MONMODELE_H

    monmodele.cpp

    #include "monmodele.h"
    #include <QSqlTableModel>

         monModele::monModele(QObject *parent) :  QAbstractTableModel(parent)
         {
              }
    
           QVariant monModele::data ( const QModelIndex & index, int role)const
          {
             if(role==Qt::BackgroundColorRole)
             {
                const QVariant value(data(index,Qt::DisplayRole));
                return QVariant(QColor(Qt::red));
             }
             return monModele::data(index,role);
          }
    

    [koahnig: moved to French forum]

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by SGaist
      #2

      Bonjour,

      Vous avez déjà reçu plusieurs réponses sur ce cette question ci. Les avez-vous testées ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved