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 avec les signaux

  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut Problème avec les signaux
    Bonjour,

    J'ai créé 2 boutons, un slider. Chacun ont un signal : quitter, à propos de QT et redimensionner la largeur de la fenêtre. Bien que l'affichage des objets crées ait lieu, leur signal ne semble pas fonctionner car rien ne se passe à leur appui.

    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
    22
    23
    24
    25
    26
    27
    28
     
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QLCDNumber>
    #include <QSlider>
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
     
           QWidget main_windows;
           main_windows.setFixedSize(300, 300);                                    
     
           QPushButton bouton0( "A propos de" , &main_windows );
           QPushButton bouton1( "Quitter    " , &main_windows );
           QSlider     slider ( Qt::Horizontal, &main_windows );
     
           bouton1.setGeometry ( 050, 110, 200, 050 );
            slider.setGeometry ( 050, 170, 150, 020 );
            slider.setRange    ( 200, 600           );
     
           main_windows.show();
     
        return app.exec();
    }
    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
    #include "fenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
    {
        setFixedSize(300, 150);
     
        bouton0 = new QPushButton("", this);
        bouton1 = new QPushButton("", this);
     
        slider = new QSlider(Qt::Horizontal, this);
     
        QObject::connect(bouton0, SIGNAL(clicked())        , qApp, SLOT( aboutQt()              ) );
        QObject::connect(bouton1, SIGNAL(clicked())        , qApp, SLOT( quit()                 ) );
        QObject::connect(slider , SIGNAL(valueChanged(int)), this, SLOT( ChangeWindowsWidth(int)) );
    }
     
    void MaFenetre::ChangeWindowsWidth(int width)
    {
        setFixedSize(width, 100);
    }
    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
    #ifndef DEF_MAFENETRE
    #define DEF_MAFENETRE
     
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QLCDNumber>
    #include <QSlider>
     
     
    class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
    {
        Q_OBJECT  
     
        public:
        MaFenetre();
     
        public slots:
        void ChangeWindowsWidth(int width);
     
        private:
        QPushButton *bouton0; 
        QPushButton *bouton1;
        QSlider     *slider; 
    };
     
    #endif
    Merci d'avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour !

    Sauf erreur de ma part, tu instancies deux fois chaque bouton et deux fois le slider... (dans le main et dans le constructeur de la fenetre)

    Je pense donc que les éléments que tu vois sont ceux du main, alors que ceux que tu connectes sont ceux de le fenêtre...

  3. #3
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Sur votre suggestion j'ai mis les lignes de commandes correspandantes dans le main en commentaire et j'ai recompilé. Rien ne s'affiche, donc je suppose que cela ne vient pas de là.

    Merci quand même.

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par darkwall_37 Voir le message
    Rien ne s'affiche, donc je suppose que cela ne vient pas de là.
    Si ça va bien de là !
    Et en fait y'a même un autre problème que je n'avais pas vu : tu n'instancies pas d'objet de la classe MaFenetre !

    ton main devrait plutot ressembler à quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main (int argc, char *argv[]) {
       QApplication app(argc, argv);
       MaFenetre  main_windows; 
       main_windows.show();
       return app.exec();
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Merci, vous aviez raison. Merci de votre aide !

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

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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