Bonjour à tous,
Mon application est constituée d'une fenêtre principale, formée d'un QTabWidget à plusieurs onglets (normal ^^). L'application vise à lire et écrire dans une base de données SQLite (constituée d'un simple fichier) qui contient ma collection de disques
Dans mon onglet d'accueil, j'affiche le nombre d'éléments contenus dans ma base. Pour cela, j'utilise une requête de type SELECT COUNT et j'affiche le résultat avec un QLCDNumber.
Voici le code de création de l'onglet :
Ça marche très bien au lancement. Le problème vient du fait que ce nombre n'est pas mis à jour au cours de l'exécution du programme. Si mon programme démarre avec 10 entrées en base, que j'ajoute 2 disques via l'onglet d'ajout à la base, que je reviens à l'onglet d'accueil, et bien il affiche toujours 10. C'est assez logique, mais moi je voudrais qu'il recalcule la donnée.
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 MyWelcomeTab::MyWelcomeTab() : QWidget() { // Comptage du nbr de disques int nbrDisques = MySQL_elementsCount("elements"); // fonction perso OK if(nbrDisques < 0) { QMessageBox::critical(\ this,\ tr("Erreur SQL"),\ tr("Il a ete impossible de compter le nombre d'element dans la base de donnees. Le fonctionnement pourrait s'en trouver corrompu")); } // Creation des objets LCDNombreDisques = new QLCDNumber; LCDNombreDisques->setSegmentStyle(QLCDNumber::Flat); LCDNombreDisques->display(nbrDisques); QLabel *texteNombreDisques = new QLabel; texteNombreDisques->setText("Nombre de disques dans la base :"); // Positionnement dans un layout QGridLayout *layoutWelcomeTab = new QGridLayout; layoutWelcomeTab->addWidget(LCDNombreDisques,0,1); layoutWelcomeTab->addWidget(texteNombreDisques,0,0); this->setLayout(layoutWelcomeTab); }//MyWelcomeTab()
Je sais qu'en Matlab, il existe une fonction redraw qui permet de rafraichir une fenêtre, ce qui inclut de recalculer les variables la constituant. Existe t-il une telle fonction en Qt ? Comment faire ?
Merci pour vos idées![]()
Partager