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 :

Utilisation d'un slot

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Par défaut Utilisation d'un slot
    Bonsoir,

    je suis en train de faire le tp ZeroClassGenerator du sdz, je n'arrive pas a envoyer mon slot a mon bouton generer ,
    Pour le moment je cherche juste a afficher une nouvelle fenetre simple. mais j'obtient toujours cette erreur : bject::connect: No such slot QWidget::generate_window()
    voici 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    void    QBuild::new_window(void)
    {
        // ma nouvelle fenetre.
    }
     
    void    QBuild::build_window(QWidget &fenetre)
    {
        QLineEdit   *name = new QLineEdit;
        QLineEdit   *name_mother = new QLineEdit;
        QLineEdit   *auteur = new QLineEdit;
        QLineEdit   *date = new QLineEdit;
        QTextEdit   *mon_texte = new QTextEdit;
     
        QFormLayout *formulaire = new QFormLayout;
        QFormLayout *formulaire_bas = new QFormLayout;
     
        QCheckBox   *checkbox_header = new QCheckBox("Proteger les headers contre les inclusions multiples", &fenetre);
        QCheckBox   *checkbox_constructeur = new QCheckBox("Generer un constructeur par default");
        QCheckBox   *checkbox_destructeur = new QCheckBox("Generer un destructeur");
        QCheckBox   *checkbox_commentaire = new QCheckBox("Ajouter un commentaire");
     
        formulaire->addRow("Classe :", name);
        formulaire->addRow("Classe mere", name_mother);
        formulaire_bas->addRow("Auteur", auteur);
        formulaire_bas->addRow("Date", date);
        formulaire_bas->addRow("Role de la classe", mon_texte);
     
        QVBoxLayout *layout_haut = new QVBoxLayout;
        layout_haut->addLayout(formulaire);
        layout_haut->addWidget(checkbox_header);
        layout_haut->addWidget(checkbox_constructeur);
        layout_haut->addWidget(checkbox_destructeur);
        layout_haut->addWidget(checkbox_commentaire);
        layout_haut->addLayout(formulaire_bas);
     
     
        QPushButton *generate = new QPushButton("Generer", &fenetre);
        QPushButton *quit = new QPushButton("Quitter", this);
     
     
        connect(generate, SIGNAL(clicked()), this, SLOT(generate_window()));
        connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
     
     
        layout_haut->addWidget(generate);
        layout_haut->addWidget(quit);
     
        fenetre.setLayout(layout_haut);
        fenetre.show();
     
    }
    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
     
    class       QBuild : public QWidget
    {
    private:
        string  name;
        string  name_mother;
        string  auteur;
        string  date;
        string  mon_texte;
     
    public:
        void   build_window(QWidget &fenetre);
     
    private slots:
        void    new_window(void);
     
    };
    Par ailleurs lorsque je remplace a la l.42 generate_window() par aboutQt() ma fenetre aboutQt apparait normalement sans aucune erreur .


    Qu'en pensez-vous ?
    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ne serai-ce pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(generate, SIGNAL(clicked()), this, SLOT(new_window()));
    Étant donné que tu as déclaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class       QBuild : public QWidget
    {
    ...
    private slots:
        void    new_window(void);
     
    };

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Par défaut
    Bonjour,

    Petite erreur d'inattention ^^ , mais apres correction toujours la meme erreur >_>
    D'ou cela peut t-il venir ?

  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
    Bonjour,
    il manque la macro Q_OBJECT au début de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class       QBuild : public QWidget
    {
    Q_OBJECT
    ...
    private slots:
        void    new_window(void);
     
    };

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 54
    Par défaut
    Bonsoir,

    Merci de votre reponse, j'ai enfin pu regler ce petit souci.

    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2009, 16h41
  2. [débutant] Utiliser un slot pour griser un bouton
    Par azerty_essai dans le forum Qt
    Réponses: 3
    Dernier message: 23/03/2009, 15h51
  3. Utiliser une function comme slot?
    Par PFCPFC dans le forum Débuter
    Réponses: 10
    Dernier message: 13/03/2009, 15h15

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