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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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();
                 });

+ 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