Bonjour,
J'ai une table issue d'une requête avec des lignes d'une certaine couleur. Pour m'entraîner je voudrais pouvoir activer ces couleurs avec un clic à partir d'un bouton afin de compléter ma formation sur le MVC.
Voici mon code:
Merci de votre aide.
monmodele.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 class monModele : public QIdentityProxyModel { public: monModele(QObject* parent = 0): QIdentityProxyModel(parent) { qDebug() << "constructor"; } QVariant data(const QModelIndex &index, int role) const override { int row = index.row(); int col = index.column(); if (role == Qt::ForegroundRole) { if (row == 6) { QColor color(Qt::blue); return QVariant (color); } return QVariant(); } if (role == Qt::BackgroundRole) { if (col == 1) { QColor color(Qt::yellow); return QVariant(color); } return QVariant(); } return QIdentityProxyModel::data(index, role); }
fenetre.cpp
..........
QPushButton *mCouleur = new QPushButton("Coloration ligne", this);
QObject::connect(mCouleur, SIGNAL(clicked()), this, SLOT(Coloration()));
.........
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 sqlModele = new QSqlTableModel(); sqlModele->setQuery(*mRequete); monModele *identModel = new monModele(); identModel->setSourceModel(sqlModele); // ui->tableView->setModel(identModel); // auto *leModel = ui->tableView->model(); // auto idx = leModel->index(5,1); // auto data = leModel->data(idx); //auto string = data.toString(); //qDebug() <<string; ui->tableView->show(); } void Fenetre::ColorationLigne() { Je ne vois pas quoi mettre ??????? }]
Partager