Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qt : QFormLayout et QComboBox

    13 janvier 2021 à 17:33:22

    Bonjour à tous,

    Je mets ce message car j'ai un problème que je ne comprends pas.

    Il se trouve que je fais avec Qt Creator la création d'une interface graphique pour une cave à vin (c'est un exo qui m'a été donné).

    J'ai donc commencé par faire une classe CaveAVin qui hérite de QMainWindow :

    #ifndef CAVEAVIN_H
    #define CAVEAVIN_H
    
    #include <QMainWindow>
    #include <QLabel>
    #include <QLineEdit>
    #include <QVBoxLayout>
    #include <QFormLayout>
    #include <QComboBox>
    #include <QGroupBox>
    
    class CaveAVin : public QMainWindow
    {
        Q_OBJECT
    
    public:
        CaveAVin(QWidget *parent = nullptr);
        ~CaveAVin();
    
    private:
        //QLabel *titre = nullptr;
        //QLabel *lCave = nullptr;
        QComboBox *cBCave = nullptr;
        QLabel *nbTotal = nullptr;
        //QLabel *lDomaine = nullptr;
        QLineEdit *lEDomaine = nullptr;
        //QLabel *lType = nullptr;
        QComboBox *cBType = nullptr;
        //QLabel *lAnnee = nullptr;
        QLineEdit *lEAnnee = nullptr;
        //QLabel *lNombre = nullptr;
        QLineEdit *lENombre = nullptr;
        //QLabel *lPrix = nullptr;
        QLineEdit *lEPrix = nullptr;
    
        // layout
        QGroupBox *general = nullptr;
        QFormLayout *form = nullptr;
    };
    #endif // CAVEAVIN_H
    

    Et voici donc mon code que j'ai commencé à faire :

    #include "caveavin.h"
    
    CaveAVin::CaveAVin(QWidget *parent)
        : QMainWindow(parent)
    {
        // widgets
        this->cBCave = new QComboBox();
        this->cBCave->addItem("Alsace");
        this->cBCave->addItem("Bordeaux");
        this->cBCave->addItem("Bourgogne");
        this->cBCave->addItem("Rhône");
    
        // form layout
        this->form = new QFormLayout();
        this->form->addRow("Cave : ", this->cBCave);
        //this->form->addRow("", this->);
        //this->form->addRow("", this->);
        //this->form->addRow("", this->);
        //this->form->addRow("", this->);
        //this->form->addRow("", this->);
    
        // group box
        this->general = new QGroupBox("Cave à vin", this);
        this->general->setLayout(this->form);
    }
    
    CaveAVin::~CaveAVin()
    {
    }
    
    

    Et le résultat quand je l'exécute est que le QGroupBox s'affiche mais vide. J'ai essayé plusieurs chose comme mettre le QFromLayout directement dans la fenêtre mais il n'affiche rien. J'ai aussi essayé de mettre le QGroupBox directement dans la fenêtre et là, il s'affiche. o_O

    J'ai aussi cherché dans la doc de Qt ou sur des forums, etc, mais rien à faire, je n'ai pas trouvé. :(

    Si vous pouviez m'aider, ça m'aiderait beaucoup et je vous en serais reconnaissant.

    Merci d'avance

    Martin

    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2021 à 15:50:33

      Bonjour, perso j'aurais utilisé QtDesigner parceque là ....

      • Partager sur Facebook
      • Partager sur Twitter

      Qt : QFormLayout et QComboBox

      × 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