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 :

Création d'un slot

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Par défaut Création d'un slot
    Bonjour à tous
    dans MaFenetre j'ai créé des boutons.
    J'ai nommé le bouton_3 " agrandissement "
    Quand je clique sur ce bouton, je veux agrandir ma fenetre.
    J'ai créé donc un SLOT personnalisé ( agrandissement ) mais ça ne marche pas...
    ça fait un moment que je tourne en rond...
    Voici mes codes :

    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
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
     
    #include "MaFenetre.h"
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc,argv);
     
        MaFenetre fenetre;
        fenetre.show();
     
        return app.exec();
    }
    fenetre.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
    #ifndef MAFENETRE_H
    #define MAFENETRE_H
     
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QColorDialog>
     
    class MaFenetre : public QWidget
    {
        Q_OBJECT
     
    public:
        MaFenetre();
     
    public slots:
        void agrandissement();
     
    private:
        QPushButton *m_bouton1;
        QPushButton *m_bouton2;
        QPushButton *m_bouton3;
        QPushButton *m_bouton4;
     
     
     
    };
     
    #endif // MAFENETRE_H
    fenetre.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
    35
    36
    37
    38
    #include "MaFenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(600,300);
     
        m_bouton1 = new QPushButton (" QUITER ",this);
        m_bouton1->setFont(QFont("Arial",14));
        m_bouton1->move(50,200);
     
        // couleur du texte du bouton1 (blanc sur fond bleu )
        m_bouton1->setStyleSheet( "color: white; background-color: blue");
     
        m_bouton2 = new QPushButton (" version de Qt",this);
        m_bouton2->setFont(QFont("Ariel",14));
        m_bouton2->move(50,50);
     
        m_bouton3 = new QPushButton (" agrandissement ",this);
        m_bouton3->setFont(QFont("Ariel",14));
        m_bouton3->move(50,100);
     
        m_bouton4 = new QPushButton (" mon 4eme bouton",this);
        m_bouton4->setFont(QFont("Ariel",14));
        m_bouton4->move(50,150);
     
        void MaFenetre::agrandissement()
        {
            setFixedSize(1200,600);
     
        }
     
        QObject::connect(m_bouton1,SIGNAL(clicked()),qApp,SLOT(quit()));
     
        QObject::connect(m_bouton2,SIGNAL(clicked()),qApp,SLOT(aboutQt()));
     
        QObject::connect(m_bouton3,SIGNAL(clicked()),qApp,SLOT(agrandissement()));
     
    }
    Mon code erreur est :

    C:\Users\François\Documents\Mes Dossiers\Dossier Qt\Dossier Programation\MaFenetre\mafenetre.cpp:26: erreur : qualified-id in declaration before '(' token
    void MaFenetre::agrandissement()
    ^
    Je ne comprends pas le message!!!
    Merci pour votre aide
    A+

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Par défaut
    Bonjour, mets la definition de MaFenetre::agrandissement() ( i.e.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void MaFenetre::agrandissement(){setFixedSize(1200,600);}
    ) en dehors de ton constructeur de MaFenetre.....

  3. #3
    Membre confirmé Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Par défaut
    Re
    je remplace le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(m_bouton3,SIGNAL(clicked()),qApp,SLOT(agrandissement()));
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(m_bouton3,SIGNAL(clicked()),this,SLOT(agrandissement()));
    ça ne marche pas non plus
    A+

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Par défaut
    oui il faut aussi la deuxieme version de ton connect....

    en clair fenetre.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
    35
    36
    37
    38
    39
     
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(600,300);
     
        m_bouton1 = new QPushButton (" QUITTER ",this);
        m_bouton1->setFont(QFont("Arial",14));
        m_bouton1->move(50,200);
     
        // couleur du texte du bouton1 (blanc sur fond bleu )
        m_bouton1->setStyleSheet( "color: white; background-color: blue");
     
        m_bouton2 = new QPushButton (" version de Qt",this);
        m_bouton2->setFont(QFont("Arial",14));
        m_bouton2->move(50,50);
     
        m_bouton3 = new QPushButton (" agrandissement ",this);
        m_bouton3->setFont(QFont("Arial",14));
        m_bouton3->move(50,100);
     
        m_bouton4 = new QPushButton (" mon 4eme bouton",this);
        m_bouton4->setFont(QFont("Arial",14));
        m_bouton4->move(50,150);
     
     
     
        QObject::connect(m_bouton1,SIGNAL(clicked()),qApp,SLOT(quit()));
     
        QObject::connect(m_bouton2,SIGNAL(clicked()),qApp,SLOT(aboutQt()));
     
        QObject::connect(m_bouton3,SIGNAL(clicked()),this,SLOT(agrandissement()));
     
    }
     void MaFenetre::agrandissement()
    {
            setFixedSize(1200,600);
     
    }
    voila.

  5. #5
    Membre confirmé Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Par défaut
    Re
    En fait tu me demande de déclarer la fonction apres l'appel du SLOT ???
    je l'ai fait malgré ma perplexité et j'ai le message erreur :

    C:\Dossier Programation\MaFenetre\MaFenetre.h:17: erreur : extra qualification 'MaFenetre::' on member 'agrandissement' [-fpermissive]
         void MaFenetre::agrandissement(){setFixedSize(1200,600);}
    Re
    En fait le problème m'est soulevé dans fenetre.h !!!
    Je comprends de moins en moins
    Merci pour ton aide
    A+

  6. #6
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Par défaut
    re, je t'ai mis plus haut le code corrigé de fenetre.cpp , il ne faut pas toucher à ton fenetre.h original. la definition de agrandissement se trouve dans fenetre.cpp pas dans fenetre.h (dans fenetre.h c'est la declaration et tu n'y touches pas!!!)

    le connect relie juste un signal à un slot et tu l'as mis bien dans ton constructeur.....il faut juste que tu sortes la definition ou l'implementation (si tu preferes) de agrandissement en dehors de ton constructeur de MAfenetre et que tu le mettes apres l'implementation ou definition de ton constructeur.

  7. #7
    Membre confirmé Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Par défaut
    Merci stephane78l pour ta patience.
    le connect relie juste un signal à un slot et tu l'as mis bien dans ton constructeur.....il faut juste que tu sortes la definition ou l'implementation (si tu preferes) de agrandissement en dehors de ton constructeur de MAfenetre et que tu le mettes apres l'implementation ou definition de ton constructeur.
    Je fais exactement ce que tu m'as demandé.
    La définition de agrandissement je l'ai mis en dehors et après le constructeur MaFenetre.
    ça ne marche toujours pas et surtout comme je l'ai dit précédemment le message d'erreur est indiqué dans le fichier fenetre.h !!!
    c'est pourquoi je ne comprends pas
    A+

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/11/2011, 22h55
  2. Réponses: 1
    Dernier message: 03/01/2011, 19h13
  3. Création de slots (PyQt4)
    Par pacolito dans le forum PyQt
    Réponses: 10
    Dernier message: 27/04/2010, 10h29
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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