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 :

Saisir plusieurs informations dans une fenêtre


Sujet :

Qt

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Points : 66
    Points
    66
    Par défaut Saisir plusieurs informations dans une fenêtre
    Bonjour,
    je veux créer une boite de dialogue où je dois saisir des informations , cette fenêtre doit être afficher après un clic sur un bouton
    j'ai fait ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Add = new QToolButton(page_13);  
        Add->setObjectName(QString::fromUtf8("Add"));  
        Add->setGeometry(QRect(150, 9, 51, 31));  
        Add->setText("Aadd");  
        connect(Add, SIGNAL(clicked()),mQOgreWidget,SLOT(showdialogue()));
    maintenant je veux créer le widget j'ai fait ça
    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
     
        void MainWindow::showdialogue()  
        {  
         QWidget fenetre;  
     
            QLineEdit *nom = new QLineEdit;  
            QLineEdit *nombre = new nombre;  
     
            QFormLayout *layout = new QFormLayout;  
            layout->addRow("nom", nom);  
             layout->addRow("nombre", nombre);  
     
            fenetre.setLayout(layout);  
     
            fenetre.show();
    Alors ,
    pour définir le widget fenêtre est ce que je dois la mêtre dans une autre class ou je peux dans la même class mainwindow

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 56
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Si tu corriges dans showdialogue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QLineEdit *nombre = new nombre;
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QLineEdit *nombre = new QLineEdit;
    Ça devrait compiler et fonctionner, non ?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Points : 66
    Points
    66
    Par défaut
    Non,
    J'ai trouvé que je dois définir une autre class pour qu'elle fonctionne

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 56
    Points : 54
    Points
    54
    Par défaut
    je ne sais pas si c'est une bonne pratique mais le code suivant donne un resultat convenable (à part que fenetre n'est pas modal mais c'est peut-être recherché) :

    le .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
     
    #include <QtGui>
     
    class MainWindow : public QMainWindow
    {
       Q_OBJECT
     
    public :
     
       MainWindow();
     
    private slots :
     
       void showdialogue();//je l'ai mis ici pour éviter d'avoir à rajouter un mQOgreWidget
     
    };
    le .c
    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
     
    #include "test.h"
     
    MainWindow::MainWindow()
    {
       QToolButton* Add = new QToolButton(this);  //j'ai mis this pour éviter d'avoir à rajouter page_13
       Add->setObjectName(QString::fromUtf8("Add"));  
       Add->setGeometry(QRect(150, 9, 51, 31));  
       Add->setText("Add");  
       connect(Add, SIGNAL(clicked()),this,SLOT(showdialogue()));
     
       setCentralWidget(Add);//pour l'ajouter quelque part
    }
     
    void MainWindow::showdialogue()  
    {  
       QWidget* fenetre = new QWidget(this);  
     //pointeur pour éviter la destruction à la fin de la fonction
     //this pour que fenetre soit détruite avec la fenêtre principale
     
       QLineEdit *nom = new QLineEdit;  
       QLineEdit *nombre = new QLineEdit;  //cf post #2
     
       QFormLayout *layout = new QFormLayout;  
       layout->addRow("nom", nom);  
       layout->addRow("nombre", nombre);  
     
       fenetre->setLayout(layout); 
       fenetre->show();
    }
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        MainWindow main_window;
        main_window.show();
        return app.exec();
    }
    Après oui, cela respecte mieux l'encapsulation d'en faire une autre classe et le code de showdialogue devient le constructeur de fenetre, ça allège le code de MainWindow et quand tu veux modifier fenetre, tu ne touches qu'au fichier fenêtre donc ta classe fenetre sera déclarée comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class fenetre : public QWidget
    {
    };

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 610
    Points : 66
    Points
    66
    Par défaut
    Je vais l'essayer pourtant j'ai fait un autre code aussi avec une autre class

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 56
    Points : 54
    Points
    54
    Par défaut
    Un autre bénéfice d'en faire une classe distincte est de pouvoir réutiliser le code de fenetre. Si tu veux en afficher une depuis ailleurs, tu n'auras pas à réécrire ce qu'il y a dans showdialogue() et c'est toujours bien d'éviter la duplication de code. Donc si tu l'as fait avec une autre classe conserve plutôt ce que tu avais bien fait .

  7. #7
    Membre régulier

    Homme Profil pro
    gerant
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Points : 88
    Points
    88
    Par défaut
    ATTENTION :
    Dés que tu fermes ta fenêtre les données sont perdues!!!!
    il faut créer une instance dans la fenêtre appelante et sans oublier les variable privés dans la fenêtre des entrées (private biensure avec des actionneurs)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier dynamiquement un ou plusieurs controls dans une fenêtre
    Par boubou38 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 13/01/2012, 10h58
  2. résumé de plusieurs popup dans une fenêtre edit
    Par nilsmatlab dans le forum Interfaces Graphiques
    Réponses: 30
    Dernier message: 27/05/2011, 14h55
  3. Réponses: 0
    Dernier message: 13/11/2010, 18h20
  4. [MySQL] Comment enregistrer et exploiter plusieur information dans une champ d'une table
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/08/2010, 23h30
  5. plusieurs objets dans une fenêtre
    Par KalKul dans le forum OpenGL
    Réponses: 5
    Dernier message: 23/03/2008, 14h27

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