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 de QLCDNumber

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut Utilisation de QLCDNumber
    Bonjour,

    J'étudie Qt, et je suis donc le merveilleux tuto qui est sur ce site. Je remercie les auteurs. J'ai un soucis de compréhension du widget QLCDNumber (Tuto 5).

    Voic mon code modifé :

    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
    53
    54
    55
    56
    57
     #include <QApplication>
     #include <QFont>
     #include <QLCDNumber>
     #include <QPushButton>
     #include <QSlider>
     #include <QVBoxLayout>
     #include <QWidget>
     
     class MyWidget : public QWidget
     {
     public:
         MyWidget(QWidget *parent = 0);
     };
     
     MyWidget::MyWidget(QWidget *parent)
         : QWidget(parent)
     {
         QPushButton *quit = new QPushButton(tr("Quit"));
         quit->setFont(QFont("Times", 18, QFont::Bold));
    //      Bouton enfant 
         QPushButton *gone= new QPushButton(tr("Gone"));
         gone->setFont(QFont("Ubuntu", 18, QFont::Bold));
     
    //Configuration du Nombre en style LCD
         QLCDNumber *lcd = new QLCDNumber(3);
         lcd->setSegmentStyle(QLCDNumber::Flat);
    //       lcd->intValue(500);
     
     
    //Configuration du bouton Slide
         QSlider *slider = new QSlider(Qt::Horizontal);
         slider->setRange(0, 999);
         slider->setValue(500);
    // Connexion des actions des boutons 
         connect(gone, SIGNAL(clicked()), qApp, SLOT(quit()));
         connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
     
         connect(slider, SIGNAL(valueChanged(int)),
                 lcd, SLOT(display(int)));
     
    //      Connexion des objets dans la fentre principal
         QVBoxLayout *layout = new QVBoxLayout;
         layout->addWidget(quit);
         layout->addWidget(gone);
     
         layout->addWidget(lcd);
         layout->addWidget(slider);
         setLayout(layout);
     }
     
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         MyWidget widget;
         widget.show();
         return app.exec();
     }
    Il fonctionne mais le LCD reste à zéro tant que je n'ai pas touché le Slide. J'aimerais que le LCD affiche 500 quand l'application démarre.

    Ensuite, pour la deuxième partie de l'exercisse je ne sais pas comment mettre la condition "supérieure à". Pour que l'appli s’arrête à 750 par exemple.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Bonjour.

    La fonction intValue() que tu as commenté permet de lire la valeur du LCD. Pour la changer, tu peux utiliser la fonction display().

    Donc à la place de la ligne // lcd->intValue(500); tu mets lcd->display(500) et ton LCD sera initialisé.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Merci Daïmanu,

    C'est la fonction que je cherchais. Ce n'est pas evident de parcourir ces "Classe reference".

    Et si je veux que mon appli s’arrête à 750?

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Il suffit de limiter le slider à 750 au lieu de 999, puisque avec la ligne connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));, à chaque fois que le slider change, le lcd se met à jour.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Oui mais l'appli ne fais pas un quit

  6. #6
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Ah, tu veux quitter l'appli quand le slider vaut 750 ?

    Dans ce cas, il faudrait connecter une autre fonction au slider.

    Avec Qt4 il faudrait faire une classe héritant de QObject pour pouvoir faire un slot.
    Avec Qt5 et C++11 on peut faire quelque chose comme ça (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Dans le main
    connect(slider, SIGNAL(valueChanged(int)),
                 lcd, SLOT(display(int)));
    //rajouter cette ligne
    connect(slider, SIGNAL(valueChanged(int)),
                 [=](int value) {
                        if(value == 750)
                            qApp->quit();
                 });

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Merci mais je suis en Qt4 car le tuto l'est

    J'ai un peut modifier le code donner par Daïmanu comme ceci mais il ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         connect(slider, SIGNAL(valueChanged(int)),
                 lcd, SLOT(display(int)));
         //L'apli s'arrête à 750
         connect(slider, SIGNAL(valueChanged(int)),
                 [=](int value) {
                        if(value == 750)
                            qApp, SLOT(quit())});


    J'ai pas mal d'erreur avec le make.

    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
    g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
    main.cpp: In lambda function:
    main.cpp:45:43: error: expected ‘;’ before ‘}’ token
                             qApp, SLOT(quit())});
                                               ^
    main.cpp:45:43: warning: right operand of comma operator has no effect [-Wunused-value]
    main.cpp: In constructor ‘MyWidget::MyWidget(QWidget*)’:
    main.cpp:45:43: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
    main.cpp:45:44: error: no matching function for call to ‘MyWidget::connect(QSlider*&, const char [19], MyWidget::MyWidget(QWidget*)::__lambda0)qApp, SLOT(quit())});
                                                ^
    main.cpp:45:44: note: candidates are:
    In file included from /usr/include/qt4/QtCore/qcoreapplication.h:45:0,
                     from /usr/include/qt4/QtGui/qapplication.h:45,
                     from /usr/include/qt4/QtGui/QApplication:1,
                     from main.cpp:1:
    /usr/include/qt4/QtCore/qobject.h:204:17: note: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
         static bool connect(const QObject *sender, const char *signal,
                     ^
    /usr/include/qt4/QtCore/qobject.h:204:17: note:   candidate expects 5 arguments, 3 provided
    /usr/include/qt4/QtCore/qobject.h:217:17: note: static bool QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)
         static bool connect(const QObject *sender, const QMetaMethod &signal,
                     ^
    /usr/include/qt4/QtCore/qobject.h:217:17: note:   candidate expects 5 arguments, 3 provided
    /usr/include/qt4/QtCore/qobject.h:337:13: note: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
     inline bool QObject::connect(const QObject *asender, const char *asignal,
                 ^
    /usr/include/qt4/QtCore/qobject.h:337:13: note:   no known conversion for argument 3 from ‘MyWidget::MyWidget(QWidget*)::__lambda0’ to ‘const char*’
    make: *** [main.o] Erreur 1
    Merci de votre aide.

  8. #8
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    La solution que je t'ai proposé ne fonctionne qu'avec la version 5 de Qt.

    Pour la version 4, il faudrait faire quelque chose de ce goût :
    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
    #ifndef MY_WIDGET_H
    #define MYWIDGET_H
     
    #include <QWidget>
     
    class MyWidget : public QWidget
    {
    	Q_OBJECT
    public:
    	MyWidget(QWidget *parent = 0);
    private slots:
    	void mayquit(int value);
    };
     
    #endif // MYWIDGET_H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "mywidget.h"
     
    MyWidget::MyWidget(QWidget *parent)
    	: QWidget(parent)
    {
    //on rajoute cette ligne vers la fin
    	connect(slider, SIGNAL(valueChanged(int)), this, SLOT(mayquit(int)));
    }
     
    void MyWidget::mayquit(int value) {
    	if(value >= 750)
    		qApp->quit();
    }
    On sépare la déclaration de la classe dans un fichier mywidget.h, on y rajoute la méthode void MyWidget::mayquit(int);, et on l'implémente dans le fichier .cpp. À la fin, on le connecte à notre slider.
    Note que j'ai remplacé value == 750 par value >= 750 puisque selon la précision du slider, il se peut qu'on ne puisse pas sélectionner 750.

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Bon Je suis vraiment novice ou débile....
    Voici mon 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include <QApplication>
    #include <QFont>
    #include <QLCDNumber>
    #include <QPushButton>
    #include <QSlider>
    #include <QVBoxLayout>
    #include <QWidget>
    #include "mywidget.h"
     
     
    class MyWidget : public QWidget
     {
     public:
         MyWidget(QWidget *parent = 0);
     };
     
     MyWidget::MyWidget(QWidget *parent)
         : QWidget(parent)
     {
         QPushButton *quit = new QPushButton(tr("Quit"));
         quit->setFont(QFont("Times", 18, QFont::Bold));
    //      Bouton enfant 
         QPushButton *gone= new QPushButton(tr("Gone"));
         gone->setFont(QFont("Ubuntu", 18, QFont::Bold));
     
    //Configuration du Nombre en style LCD
         QLCDNumber *lcd = new QLCDNumber(3);
         lcd->setSegmentStyle(QLCDNumber::Flat);
    //      Faux lcd->intValue(500);
         lcd->display(500);
     
     
    //Configuration du bouton Slide
         QSlider *slider = new QSlider(Qt::Horizontal);
         slider->setRange(0, 999);
         slider->setValue(500);
     
    // Connexion des signal et des slot
         connect(gone, SIGNAL(clicked()), qApp, SLOT(quit()));
         connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
     
         connect(slider, SIGNAL(valueChanged(int)), this, SLOT(mayquit(int)));
     
     
     
    //      Connexion des objets dans la fentre principal
         QVBoxLayout *layout = new QVBoxLayout;
         layout->addWidget(quit);
         layout->addWidget(gone);
     
         layout->addWidget(lcd);
         layout->addWidget(slider);
         setLayout(layout);
     }
     
     void MyWidget::mayquit(int value) {
    	if(value >= 750)
    		qApp->quit();
    }
     
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         MyWidget widget;
         widget.show();
         return app.exec();
     }
    Et voici le mywidget.h qui est tout comme Daïmanu me l'a donné.

    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
    #ifndef MY_WIDGET_H
    #define MYWIDGET_H
     
    #include <QWidget>
     
    class MyWidget : public QWidget
    {
    	Q_OBJECT
    public:
    	MyWidget(QWidget *parent = 0);
    private slots:
    	void mayquit(int value);
    };
     
    #endif // MYWIDGET_H
    Quand je fais le Make voici mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ make
    g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
    main.cpp:11:7: error: redefinition of ‘class MyWidget’
     class MyWidget : public QWidget
           ^
    In file included from main.cpp:8:0:
    mywidget.h:6:7: error: previous definition of ‘class MyWidget’
     class MyWidget : public QWidget
           ^
    make: *** [main.o] Erreur 1
    Qu'ai je raté?

    Sur IRC on m'a dit que Qt4 n'accepetait pas les connexions lambdas. J'ai déjà du mal à concrétiser les connexions entre SLOT et SIGNAL, qu'est ce les connexions lambdas.

    De plus n'est-il pas mieux d'apprendre sur Qt5 plutôt que Qt4 ce dernier m'a lair plus difficile. (C'est pour cela que les versions évolue généralement)

    Merci

  10. #10
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Les lambdas sont une des nouveautés de C++11, et ne sont pas supportés par Qt4, c'est pourquoi je t'ai fourni la fonction mayquit.

    Quand aux erreurs, elles sont assez explicites. Elles te disent que la classe MyWidget est redéfinie (= définie plusieurs fois) dans main.cpp.
    Il suffit de la supprimer dans ce ficher.

  11. #11
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Merci Daïmanu,

    En écrivant la class MyWidget comme ci dessous le make fonctionne:
    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 <QWidget>
    #include "mywidget.h"
     
     
     MyWidget::MyWidget(QWidget *parent)
    	: QWidget(parent)
     
    // class MyWidget : public QWidget
    //  {
    //  public:
    //      MyWidget(QWidget *parent = 0);
    //      
    //       MyWidget::MyWidget(QWidget *parent)
    //      : QWidget(parent);
    //  };
    Dans l'application, malheureusement le slider est déconnecte il ne fait plus croitre ou décroitre le QLCDNumber.

    J'ai pourtant essayé de récrire MyWigedt différemment dans public à chaque fois j'ai une erreur sur cette class. le truc que je ne comprend pas c'est la différence entre :

    MyWidget::MyWidget(QWidget *parent)
    et
    MyWidget(QWidget *parent = 0);

    D’après moi c'est pour avertir qu'il n'y a pas d'header donc pas de parent dans la dernière ligne.

    Bien à vous
    Merci

  12. #12
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Ça, c'est une question de C++ pur . Dans une classe, tu définis juste MyWidget ; quand tu implémentes cette fonction (y compris constructeur) en dehors de la déclaration de la classe, il faut indiquer à qui se rapporte ce bout de code, d'où le MyWidget::MyWidget. Si la question porte sur le = 0, quand tu n'en mets pas, ici, ça veut dire que le constructeur a besoin d'un parent, il ne peut pas fonctionner sans cette indication ; en C++, il est obligatoire d'indiquer ces valeurs par défaut côté déclaration (donc dans class {}, pas du tout côté implémentation (mais il me semble que c'est autorisé, avec la même syntaxe).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    Merci de vos réponses

    J'essaye de comprendre car cela à l'air de fonctionner sans trop savoir comment peut être à part que je commence à faire attention au braquet, au sens de lecture et structure du code, etc .. .
    Pour être totalement satisfait et le seul petit point qui reste c'est le LCDNumber reste à 500 et n'est plus modifié par le slider. Ce qui est normal car ces 2 actions ne sont plus connectées. (Right?)

    Pour rappel j'ai changé cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(slider, SIGNAL(valueChanged(int)),lcd, SLOT(display(int)));
    par celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     connect(slider, SIGNAL(valueChanged(int)), this, SLOT(mayquit(int)));
    Comment faire pour que this = lcd ?

    Bien à vous
    Merci

  14. #14
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Par défaut
    J'ai trouvé et ça pique encore.

    En fait on peut cumuler les connecteurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .../...
    // Connexion des signal et des slot
         connect(gone, SIGNAL(clicked()), qApp, SLOT(quit()));
         connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
          connect(slider, SIGNAL(valueChanged(int)),lcd, SLOT(display(int)));
         connect(slider, SIGNAL(valueChanged(int)), this, SLOT(mayquit(int)));
    .../...
    J'ai donc ceci pour le 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <QApplication>
    #include <QFont>
    #include <QLCDNumber>
    #include <QPushButton>
    #include <QSlider>
    #include <QVBoxLayout>
    #include <QWidget>
    #include "mywidget.h"
     
    MyWidget::MyWidget(QWidget *parent)
    	: QWidget(parent)
     
    {
         QPushButton *quit = new QPushButton(tr("Quit"));
         quit->setFont(QFont("Times", 18, QFont::Bold));
    //      Bouton enfant 
         QPushButton *gone= new QPushButton(tr("Gone"));
         gone->setFont(QFont("Ubuntu", 18, QFont::Bold));
     
    //Configuration du Nombre en style LCD
         QLCDNumber *lcd = new QLCDNumber(3);
         lcd->setSegmentStyle(QLCDNumber::Flat);
         lcd->display(500);
     
    //Configuration du bouton Slide
         QSlider *slider = new QSlider(Qt::Horizontal);
         slider->setRange(0, 999);
         slider->setValue(500);
     
    // Connexion des signal et des slot
         connect(gone, SIGNAL(clicked()), qApp, SLOT(quit()));
         connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
          connect(slider, SIGNAL(valueChanged(int)),lcd, SLOT(display(int)));
         connect(slider, SIGNAL(valueChanged(int)), this, SLOT(mayquit(int)));
     
     
     
    //      Connexion des objets dans la fentre principal
         QVBoxLayout *layout = new QVBoxLayout;
         layout->addWidget(quit);
         layout->addWidget(gone);
     
         layout->addWidget(lcd);
         layout->addWidget(slider);
         setLayout(layout);
    }
     
    void MyWidget::mayquit(int value) {
    	if(value >= 750)
    		qApp->quit();
    }
     
    int main(int argc, char *argv[])
    {
         QApplication app(argc, argv);
         MyWidget widget;
         widget.show();
         return app.exec();
    }
    et ceci pour mywidget.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
    #ifndef MY_WIDGET_H
    #define MYWIDGET_H
     
    #include <QWidget>
     
    class MyWidget : public QWidget
    {
    	Q_OBJECT
    public:
    	MyWidget(QWidget *parent = 0);
    private slots:
    	void mayquit(int value);
    };
     
    #endif // MYWIDGET_H
    Encore merci pour tous vos conseils et recadrage.
    Je continue le tuto

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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