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 :

Box et Label ne s'affichent pas dans la fenêtre


Sujet :

Qt

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut Box et Label ne s'affichent pas dans la fenêtre
    J'ai un autre petit problème, cette fois je pense que c'est due à une mauvaise lecture de la doc, mais en suivant les exemples donnés dans les demos de Qt, je ne vois rien de plus pourtant.

    voici mon code
    le main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <QApplication>
    #include "FicheProprietaire.h"
     
    int main(int argc, char *argv[])
    {
     
         QApplication app(argc, argv);
         FicheProprietaire fenetre;
         fenetre.show();
     
         return app.exec();
    }
    le .h
    #include <QApplication>
    #include <QWidget> // inheriting class's header file
    #include <QComboBox>
    #include <QLabel>
    #include <QGridLayout>
    #include <QGroupBox>


    class FicheProprietaire : public QWidget
    {
    Q_OBJECT

    public:
    FicheProprietaire();

    private:
    void boxCivilite();

    QGroupBox *civiliteGroupe;
    QGridLayout *civiliteLayout;
    QComboBox *civilite;
    QLabel *labelCivilite;
    };
    et enfin le .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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include "ficheproprietaire.h" // class's header file
     
     
    FicheProprietaire::FicheProprietaire()
    {
        setFixedSize(900, 550);
        setWindowTitle(tr("Proprietaire"));
        void boxCivilite();
     
     
    }
     
     
    void FicheProprietaire::boxCivilite()
    {
        civiliteGroupe = new QGroupBox(tr("Civilite"), this);
        labelCivilite = new QLabel(tr("Civilité: "), this);
     
        civilite = new QComboBox(this);
            civilite->addItem(tr("Monsieur"));
            civilite->addItem(tr("Madame"));
            civilite->addItem(tr("Mademoiselle"));
            civilite->addItem(tr("Monsieur ou Madame"));
            civilite->addItem(tr("Société"));
            civilite->addItem(tr("SARL"));
            civilite->addItem(tr("EURL"));
     
        civiliteLayout = new QGridLayout;
            civiliteLayout->addWidget(labelCivilite, 0, 0);
            civiliteLayout->addWidget(civilite, 0, 1);
     
        civiliteGroupe->setLayout(civiliteLayout);
     
    }
    Et je n'ai rien qui s'affiche sur ma fenêtre à l'éxécution.
    d'où peut bien venir le problème? ai-je oublié une ligne? (pourtant j'ai semble-t'il pas besoin de "show()" ou autre, et ça marchait très bien avec les QPushButton qui apparaissaient normalement)

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Problème résolu voila ce que j'ai fait:

    j'ai supprimé ma methode et j'ai fait le .cpp comme ceci:
    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
    FicheProprietaire::FicheProprietaire()
    {
        setFixedSize(900, 550);
        setWindowTitle(tr("Proprietaire"));
     
        civiliteGroupe = new QGroupBox(tr("Civilite"), this);
        labelCivilite = new QLabel(tr("Civilité: "), this);
     
        civilite = new QComboBox(this);
            civilite->addItem(tr("Monsieur"));
            civilite->addItem(tr("Madame"));
            civilite->addItem(tr("Mademoiselle"));
            civilite->addItem(tr("Monsieur ou Madame"));
            civilite->addItem(tr("Société"));
            civilite->addItem(tr("SARL"));
            civilite->addItem(tr("EURL"));
     
        civiliteLayout = new QGridLayout;
            civiliteLayout->addWidget(labelCivilite, 0, 0);
            civiliteLayout->addWidget(civilite, 0, 1);
     
        civiliteGroupe->setLayout(civiliteLayout);
     
     
    }
    j'ai juste copier coller ce qu'il y avait dans mon boxCivilite() pour le mettre dans mon constructeur par défaut, donc ajouter des methodes dans mon constructeur par défaut ne fonctionne pas chez moi... Une explication à me fournir?? :p

  3. #3
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Dans le constructeur, il y a un void en trop.
    Edit: tu avais résolu le problème avant, mais maintenant tu as l'explication. Toi tu déclarais la fonction au lieu de l'appeler.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Il faut donc que j'enlève le mot clé "void" dans mon constructeur par défaut?
    En effet, il me semblait avoir eu des erreurs de compilation parce que j'avais pas ce "void" justement, mais ça devait être autre chose du coup

    (c'est vrai que dans les exemples Qt, il n'y a pas le "void")

    Je reteste sans, et je résous le sujet si je ne rencontre pas de problème, merci

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    En fait, tu faisais, comme l'a dit kinji1, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Constructeur(/* les arguments */)
    {
    // ... du code
    void boxCivilite();
    }
    Ce qui déclare une fonction dans ton constructeur.
    Toi, tu voulais appeler et non déclarer ta fonction.
    Il suffisait donc de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Constructeur(/* les arguments */)
    {
    // ... du code
    boxCivilite();
    }

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par Alp Voir le message
    comme l'a dit IrmatDen,
    kinji1, j'ai pas posté ici

  7. #7
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Excuse-moi, en effet. Question d'habitude

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Oui j'ai vu la grosse erreur et j'ai bien modifié ma ligne, merci bien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/07/2015, 10h53
  2. Le menu aide ne s'affiche pas dans ma fenêtre
    Par emykev22 dans le forum Débuter
    Réponses: 4
    Dernier message: 18/11/2014, 20h24
  3. [CSS][IE]background d'affiche pas dans div sur IE
    Par Thomzz dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 21/09/2005, 23h32
  4. Noms des colonnes ne s'affichent pas dans un JTable
    Par Bourdet dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/07/2005, 15h26
  5. Une valeur ne s'affiche pas dans un champ texte
    Par KibitO dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2005, 20h42

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