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

Discussion :

Problème de layout

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut Problème de layout
    Bonjours,

    J'essaie de faire un petit design pour mon application, mais voila que je rencontre un probleme.

    Je dispose de 1 QGroupBox-> dedans doit se trouver 2 QGroupBox.
    Mais le probleme c'est que seul la premiere s'affiche.

    Regarder mon code :
    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
     
            # La groupbox principal rataché a la fenetre principale
    	groupBoxPrincipal = new QGroupBox("GroupBox 1");
    	layout1 = new QHBoxLayout(fenetrePrincipal);
    	layout1->addWidget(groupBoxPrincipal);
     
    	#La 2nd group box contenu dans la group box principal
    	groupBox2 = new QGroupBox("GroupBox 2");
    	layout2 = new QVBoxLayout(groupBoxPrincipal);
    	layout2->addWidget(groupBox2);
     
            #La 3ieme gropBox contenu dans la group box principal
    	groupBox3 = new QGroupBox("GroupBox 3");
    	layout3 = new QVBoxLayout(groupBoxPrincipal);
    	layout3>addWidget(groupBox3);
    Pourquoi ma GroupBox3 ne s'afiche pas s'il vous plait ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour,

    et si tu mets :
    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
            # La groupbox principal rataché a la fenetre principale
    	groupBoxPrincipal = new QGroupBox("GroupBox 1");
    	layout1 = new QHBoxLayout(fenetrePrincipal);
    	layout1->addWidget(groupBoxPrincipal);
     
    	#La 2nd group box contenu dans la group box principal
    	groupBox2 = new QGroupBox("GroupBox 2");
    	layout2 = new QVBoxLayout();
    	layout2->addWidget(groupBox2);
            layout1->addLayout(layout2);
     
            #La 3ieme gropBox contenu dans la group box principal
    	groupBox3 = new QGroupBox("GroupBox 3");
    	layout3 = new QVBoxLayout();
    	layout3>addWidget(groupBox3);
            layout1->addLayout(layout3);
    Cordialement.

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Je ne m'y attendais pas mais je confirme sa marche.

    Pour que je sois éclairé, quand on fait sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout2 = new QVBoxLayout(groupBoxPrincipal);
    Sa ne reviens pas a faire sa ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    layout2 = new QVBoxLayout();
    layout2->addWidget(groupBox2);
    Parce que j’étais prêt a parier que c’était la même chose.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Citation Envoyé par thebarbarius Voir le message
    Pour que je sois éclairé, quand on fait sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout2 = new QVBoxLayout(groupBoxPrincipal);
    Sa ne reviens pas a faire sa ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    layout2 = new QVBoxLayout();
    layout2->addWidget(groupBox2);
    Parce que j’étais prêt a parier que c’était la même chose.
    Dans le premier cas groupBoxPrincipal est le parent de layout2 et dans le second c'est l'inverse.

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Alors, je me suis trompé. Sa ne marche toujours pas.

    Toutes les GroupBox sont en dehors des une des autres.

    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
     
        //La groupbox principal rataché a la fenetre principale
    	groupBoxPrincipal = new QGroupBox("GroupBox 1");
    	layout1 = new QVBoxLayout(this);
    	layout1->addWidget(groupBoxPrincipal);
     
    	//La 2nd group box contenu dans la group box principal
    	groupBox2 = new QGroupBox("GroupBox 2");
    	layout2 = new QVBoxLayout();
    	layout2->addWidget(groupBox2);
            layout1->addLayout(layout2);
     
        //La 3ieme gropBox contenu dans la group box principal
    	groupBox3 = new QGroupBox("GroupBox 3");
    	layout3 = new QVBoxLayout();
    	layout3->addWidget(groupBox3);
        layout1->addLayout(layout3);

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Je n'ai pas bien saisi le problème.

  7. #7
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Et bien a la place d'avoir 1 GroupBox qui contient 2 Group box j'ai 3 GroupBox indépendante.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Dans ce cas tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        //La groupbox principal rataché a la fenetre principale
    	groupBoxPrincipal = new QGroupBox("GroupBox 1");
    	layout1 = new QVBoxLayout();
    	groupBoxPrincipal->setLayout(layout1);
     
     
    	//La 2nd group box contenu dans la group box principal
    	groupBox2 = new QGroupBox("GroupBox 2");
    	layout1->addWidget(groupBox2 );
     
        //La 3ieme gropBox contenu dans la group box principal
    	groupBox3 = new QGroupBox("GroupBox 3");
    	layout1->addWidget(groupBox3);

  9. #9
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    La du coup il y a rien qui s'affiche.

    Juste une fenêtre blanche.

    Il me faudrai 1 groupBox mere, qui contiens 2 GroupBox fille.
    Quelqu'un peut me donner un exemple fonctionnel ?

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    Bonjour,

    j'ai testé ce code et ça marche comme tu as dis, le premier groupbox contient les deux autres.

    vérifies ces 3 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    groupBoxPrincipal->setLayout(layout1);
    ...
    layout1->addWidget(groupBox2 );
    ...
    layout1->addWidget(groupBox3);
    si ça ne marche pas, tu peux montrer ton code pour voir ce qui ne vas pas.

  11. #11
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    mafenetre.cpp
    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
     
    #include "MaFenetre.h"
    #include <stdio.h>
    #include "windows.h"
    #include <iostream>
     
    MaFenetre::MaFenetre() : QWidget()
    {
    	    //La groupbox principal rataché a la fenetre principale
    	groupBoxPrincipal = new QGroupBox("GroupBox 1");
    	layout1 = new QVBoxLayout();
    	groupBoxPrincipal->setLayout(layout1);
     
     
    	//La 2nd group box contenu dans la group box principal
    	groupBox2 = new QGroupBox("GroupBox 2");
    	layout1->addWidget(groupBox2 );
     
        //La 3ieme gropBox contenu dans la group box principal
    	groupBox3 = new QGroupBox("GroupBox 3");
    	layout1->addWidget(groupBox3);
    }
    main.cpp
    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
     
    #include <QtGui/QApplication>
    #include "MaFenetre.h"
     
     
    typedef char CHAR;
    typedef wchar_t WCHAR;
     
    #ifndef UNICODE
    typedef CHAR TCHAR;
    #else
    typedef WCHAR TCHAR;
    #endif
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        MaFenetre fenetre;
        fenetre.show();
        return app.exec();
    }
    mafenetre.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
     
    #ifndef DEF_MAFENETRE
    #define DEF_MAFENETRE
     
    #include <QtGui/QApplication>
    #include <QtGui/QGroupBox>
    #include <QtGui/QPushButton>
    #include <QtGui/QWidget>
    #include <QtGui/QTabWidget>
    #include <QtGui/QLabel>
    #include <QtGui/QGridLayout>
    #include <QtGui/QVBoxLayout>
     
    class MaFenetre : public QWidget
    {
        Q_OBJECT
     
        public:
        MaFenetre();
     
    	private :
    		QGroupBox *groupBoxPrincipal;
    		QGroupBox *groupBox1;
    		QGroupBox *groupBox2;
    		QGroupBox *groupBox3;
    		QVBoxLayout *layout1;
    		QVBoxLayout *layout2;
    		QVBoxLayout *layout3;
    };
     
    #endif

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    il te faut juste attacher groupBoxPrincipal à son parent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    groupBoxPrincipal = new QGroupBox("GroupBox 1", this);

  13. #13
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    En effet sa marche maintenant.

    Autre petite question.
    Comme vous pouvez vous en doutez en pratique je n'ai pas ce code la.

    J'ai en plus un layout principal.

    Donc ce qui va donner en plus :

    mafenetre.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    layoutPrincipal = new QHBoxLayout(this);
    //La groupbox principal rataché a la fenetre principale
    groupBoxPrincipal = new QGroupBox("GroupBox 1", layoutPrincipal);
    Et dans mafenetre.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QHBoxLayout *layoutPrincipal;
    Mais evidemment sa ne marche pas et voici l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    1>.\MaFenetre.cpp(10): error C2664: 'QGroupBox::QGroupBox(const QString &,QWidget *)'*: impossible de convertir le paramètre 2 de 'QHBoxLayout *' en 'QWidget *'
    1>          Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction

  14. #14
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    le constructeur s'attend à un parent de type QWidget * et là tu lui transmets un QHboxLayout *, il ne peut pas faire la conversion.

    il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    layoutPrincipal = new QHBoxLayout(this);
    //La groupbox principal rataché a la fenetre principale
    groupBoxPrincipal = new QGroupBox("GroupBox 1"l);
    layoutPrincipal ->addWidget(groupBoxPrincipal);

  15. #15
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Je viens regarder votre reponse, et je ne pas apte a comprendre les parametre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    groupBoxPrincipal = new QGroupBox("GroupBox 1"1);
    C'est 1"l ou 1"1

    Et que veux dire tous sa ?

  16. #16
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 111
    Par défaut
    non, c'est une erreur de frappe je ne l'ai pas vu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    groupBoxPrincipal = new QGroupBox("GroupBox 1");

  17. #17
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Donc pas de layout principal ?

Discussions similaires

  1. [Struts-Layout] problème avec layout:datagrid
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/04/2007, 09h31
  2. Problème de Layout
    Par jason69 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 30/08/2006, 15h45
  3. [SashForm]Problème de layout
    Par Efkar dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 18/08/2006, 13h28
  4. Problème de layout
    Par menuge dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/05/2006, 16h47
  5. [JscrollPane]Problèmes avec layout du panel intérieur
    Par Baptiste Wicht dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 19/03/2006, 13h08

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