Bonjour tout le monde,
nouveau venu dans le monde de QtCreator 5.2, je requiers votre aide pour une chose qui vous paraîtra certainement très simple mais qui est assez nébuleuse pour moi.
Je suis en train de faire un logiciel avec une interface graphique "mainwindow.ui" conçue en mode design avec, entre autre, 23 widgets éditables (QComboBox, QSpinBox, QDoubleSpinBox, QTextEdit etc...). Cette interface fonctionne sans problème et mes widgets interagissent exactement comme je l'ai codé dans mon fichier source "mainwindow.cpp".
J'ai également créé et connecté une base de données SQLITE dans un fichier en-tête "connection.h" en lui attribuant autant de colonnes que j'ai de widgets éditables (c'est à dire 23) dans mon interface "mainwindow.ui".
Maintenant ce que souhaite faire, c'est enregistrer les données de mes widgets dans les colonnes de ma base SQLITE en cliquant sur un bouton "Valider" de mon interface graphique. Or je ne comprends pas comment on fait. J'ai parcouru l'internet à la recherche d'explications mais je n'ai pas su adapter les exemples à mon propre cas.
J'arrive à enregistrer des données dans ma base en tapant directement dans "connection.h", une requête du genre :
Mais je n'arrive pas à faire en sorte que ce soit mon bouton "Valider" qui le fasse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part query.exec("insert into maTable values('mes', 23, 'valeurs', 'de', 'widget', 'editable' )");
De plus, comme les données de mes widgets sont amenées à changer, je les associerai à des variables (une par widget).
Lorsque je compile, mon interface graphique et ma base données apparaissent sans problème, mais de toute évidence je ne sais pas les relier.
Donc, pour résumer, j'ai :
- "connection.h" qui crée et connecte ma base SQLITE,
- "mainwindow.cpp" qui contient le code de mon bouton "Valider" connecté à son SIGNAL "clicked" et à son SLOT "on_valider_clicked"(déclaré dans "mainwindow.h"),
- "mainwindow.ui" pour mon interface graphique, et
- "main.cpp" qui m'affiche le tout sans erreur de compilation.
Sauriez-vous m'aider ? Par avance merci.
Si nécessaire, voici le code de mon "connection.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 #ifndef CONNECTION_H #define CONNECTION_H #include <QMessageBox> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlError> #include <QtSql/QSqlQuery> //! [0] static bool createConnection() { QSqlDatabase base = QSqlDatabase::addDatabase("QSQLITE"); base.setDatabaseName(":memory:"); if (!base.open()) { QMessageBox::critical(0, qApp->tr("Cannot open database"), qApp->tr("Unable to establish a database connection.\n" "This example needs SQLite support. Please read " "the Qt SQL driver documentation for information how " "to build it.\n\n" "Click Cancel to exit."), QMessageBox::Cancel); return false; } QSqlQuery query; query.exec("create table maTable (id int primary key, " "valeur1 varchar(50), valeur2 varchar(80), valeur3 double(5), valeur4 double(5), valeur5 double(5), valeur6 varchar(120)," "valeur7 double(7), valeur8 double(5), valeur9 double(5), valeur10 double(5), valeur11 double(7), valeur12 double(7), valeur13 double(5), valeur14 varchar(14), valeur15 varchar(10)," "valeur16 varchar(80), valeur17 int(3), valeur18 int(3), valeur19 varchar(80), valeur20 varchar(80), valeur21 double(10), valeur22 double(10), date varchar(20))"); query.exec("insert into maTable values(101, 'val1 ', 'val2', val3, val4, val5, 'val6', val7, val8, val9, val10, val11, val12, val13, 'val14', 'val15', 'val16', val17, val18, 'val19', 'val20', val21, val22, '06/05/2014')"); return true; } #endif
Partager