IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

SQLITE et widgets


Sujet :

Qt

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    sans emploi
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut SQLITE et widgets
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query.exec("insert into maTable values('mes', 23, 'valeurs', 'de', 'widget', 'editable' )");
    Mais je n'arrive pas à faire en sorte que ce soit mon bouton "Valider" qui le fasse.
    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

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Je t'invite à jeter un coup d'oeil à tous les exemples de QT.
    Sur la page d'accueil de Qt Creator, tape dans la barre de recherche SQL.
    Tu trouveras plusieurs exemples permettant d'enregistrer les variables que tu utilises.

Discussions similaires

  1. qui connait sqlite ?
    Par Emmanuel Lecoester dans le forum SQLite
    Réponses: 23
    Dernier message: 19/02/2010, 13h44
  2. [SQLite]éliminer un motif dans des champ TEXT
    Par Invité(e) dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/05/2005, 17h44
  3. base de données en sqlite
    Par Cyrillou dans le forum SQLite
    Réponses: 1
    Dernier message: 12/05/2005, 15h37
  4. debuter en SQLite
    Par venomelektro dans le forum SQLite
    Réponses: 4
    Dernier message: 08/12/2004, 19h17
  5. [SWT]Eclipse Java : swt.widgets.Table
    Par watson dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 01/10/2003, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo