Bonjour,

Je fais une interface qui permet d’afficher tous les employés stockés dans une base de données SQL Server.
Pour ceci, j’utilise un QTableView auquel je lie un QSqlTableModel. J’ai créé une vue dans la base de données qui représente la table à afficher.
Mon problème est que l’affichage de la table est très lent, ainsi que quand j’essaye de redimensionner mon interface ou tout simplement de scroller dans celle-ci. Elle ne contient pourtant dans mon test que une dizaine de lignes.

Voici le code en question :

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
 
tModelEmploye = new QSqlTableModel(this);
tModelEmploye->setTable("AfficherEmploye");
tModelEmploye->select();
tModelEmploye->setHeaderData(0, Qt::Horizontal, tr("Identifiant"));
tModelEmploye->setHeaderData(1, Qt::Horizontal, tr("Nom"));
tModelEmploye->setHeaderData(2, Qt::Horizontal, tr("Prenom"));
tModelEmploye->setHeaderData(3, Qt::Horizontal, tr("Date de naissance"));
tModelEmploye->setHeaderData(4, Qt::Horizontal, tr("Salaire"));
tModelEmploye->setHeaderData(5, Qt::Horizontal, tr("Adresse"));
 
ui->tViewEmploye->setModel(tModelEmploye);
ui->tViewEmploye->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tViewEmploye->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tViewEmploye->resizeColumnsToContents();
 
ui->tViewEmploye->horizontalHeader()->setSortIndicatorShown(true);
ui->tViewEmploye->horizontalHeader()->setSortIndicator(0, Qt::AscendingOrder);
 
connect(ui->tViewEmploye->horizontalHeader(), SIGNAL(sectionClicked(int)), ui->tViewEmploye, SLOT(sortByColumn(int)));
Si quelqu’un sait de où vient cette lenteur et comment je pourrais améliorer cella…

Merci d’avance.