Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt: QGroupBox & QFormLayout

Sujet résolu
    24 novembre 2019 à 17:00:33

    Bonjour, en essayant de faire un petit programma graphique j'ai rencontré un problème.

    Je n'arrive pas à combiner un Layout avec un GroupBox, du moins pas totalement car le titre que je voudrais donner se met seulement au premier champ alors que j'aimerai qu'il soit pour les deux champs présents. J'ai déjà relu plusieurs fois les chapitres qui concerne ces deux classes. Je vous met une photo et mon code.

    #include <QApplication>
    #include <QLineEdit>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QFormLayout>
    #include <QGroupBox>
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        QWidget fenetre;
        QGroupBox *groupbox = new QGroupBox("Nom et prénom !", &fenetre);
        // Création du layout de formulaire et de ses widgets
    
        QLineEdit *nom = new QLineEdit;
        QLineEdit *prenom = new QLineEdit;
    
        QFormLayout *formLayout = new QFormLayout;
        formLayout->addRow("Nom :", nom);
        formLayout->addRow("Prénom :", prenom);
    
        // Création du layout principal de la fenêtre (vertical)
    
        QVBoxLayout *layoutPrincipal = new QVBoxLayout;
        layoutPrincipal->addLayout(formLayout); // Ajout du layout de formulaire
    
        QPushButton *boutonQuitter = new QPushButton("Quitter");
        QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
        layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
    
        groupbox->setLayout(formLayout);
        fenetre.setLayout(layoutPrincipal);
    
        fenetre.show();
    
        return app.exec();
    }

    Merci de m'aider ^^

    • Partager sur Facebook
    • Partager sur Twitter
      4 décembre 2019 à 16:25:45

      Bonjour,

      l'erreur était toute simple : tu as mis le formLayout dans le layoutPrincipal alors que le formLayout était dans la groupbox, il fallait mettre le groupbox dans le layout principal.

      Voici le code corrigé :

      #include <QApplication>
      #include <QLineEdit>
      #include <QPushButton>
      #include <QVBoxLayout>
      #include <QFormLayout>
      #include <QGroupBox>
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
      
          QWidget fenetre;
          QGroupBox *groupbox = new QGroupBox("Nom et prénom !", &fenetre);
          // Création du layout de formulaire et de ses widgets
      
          QLineEdit *nom = new QLineEdit;
          QLineEdit *prenom = new QLineEdit;
      
          QFormLayout *formLayout = new QFormLayout;
          formLayout->addRow("Nom :", nom);
          formLayout->addRow("Prénom :", prenom);
      
          // Création du layout principal de la fenêtre (vertical)
      
          QVBoxLayout *layoutPrincipal = new QVBoxLayout;
          layoutPrincipal->addWidget(groupbox); // Ajout de groupbox dans layoutPrincipal
      
          QPushButton *boutonQuitter = new QPushButton("Quitter");
          QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
          layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
      
          groupbox->setLayout(formLayout);
          fenetre.setLayout(layoutPrincipal);
      
          fenetre.show();
      
          return app.exec();
      }

      PS: Mets un pouce bleu sur ma réponse s'il te plaît !:D

      -
      Edité par AymericSt 4 décembre 2019 à 16:29:11

      • Partager sur Facebook
      • Partager sur Twitter

      La programmation, c'est l'art d'exprimer sa créativité !

        5 décembre 2019 à 20:15:01

        AymericSt a écrit:

        Bonjour,

        l'erreur était toute simple : tu as mis le formLayout dans le layoutPrincipal alors que le formLayout était dans la groupbox, il fallait mettre le groupbox dans le layout principal.

        Voici le code corrigé :

        #include <QApplication>
        #include <QLineEdit>
        #include <QPushButton>
        #include <QVBoxLayout>
        #include <QFormLayout>
        #include <QGroupBox>
        
        int main(int argc, char *argv[])
        {
            QApplication app(argc, argv);
        
            QWidget fenetre;
            QGroupBox *groupbox = new QGroupBox("Nom et prénom !", &fenetre);
            // Création du layout de formulaire et de ses widgets
        
            QLineEdit *nom = new QLineEdit;
            QLineEdit *prenom = new QLineEdit;
        
            QFormLayout *formLayout = new QFormLayout;
            formLayout->addRow("Nom :", nom);
            formLayout->addRow("Prénom :", prenom);
        
            // Création du layout principal de la fenêtre (vertical)
        
            QVBoxLayout *layoutPrincipal = new QVBoxLayout;
            layoutPrincipal->addWidget(groupbox); // Ajout de groupbox dans layoutPrincipal
        
            QPushButton *boutonQuitter = new QPushButton("Quitter");
            QWidget::connect(boutonQuitter, SIGNAL(clicked()), &app, SLOT(quit()));
            layoutPrincipal->addWidget(boutonQuitter); // Ajout du bouton
        
            groupbox->setLayout(formLayout);
            fenetre.setLayout(layoutPrincipal);
        
            fenetre.show();
        
            return app.exec();
        }

        PS: Mets un pouce bleu sur ma réponse s'il te plaît !:D

        -
        Edité par AymericSt hier à 16:29


        Merci beaucoup je vais pouvoir continuer !
        • Partager sur Facebook
        • Partager sur Twitter

        Qt: QGroupBox & QFormLayout

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown