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 :

Ajouter de la couleur

  1. #1
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut Ajouter de la couleur
    bonjour,

    Comment ajouter de la couleur dans une classe ?

    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 "MaFenetre.h"
     
    MaFenetre::MaFenetre() : QWidget()
     
    {
     
        setFixedSize(300, 150);
     
        m_lcd = new QLCDNumber(this);
        m_lcd->setSegmentStyle(QLCDNumber::Flat);
        m_lcd->move(50, 20);
     
        m_lcd-> setColor(158, 193, 76);
     
        m_slider = new QSlider(Qt::Horizontal, this);
        m_slider->setGeometry(10, 60, 150, 20);
     
        QObject::connect(m_slider, SIGNAL(valueChanged(int)), m_lcd, SLOT(display(int))) ;
     
    }
    MaFenetre.cpp:13: error: 'class QLCDNumber' has no member named 'setColor' m_lcd-> setColor(158, 193, 76);


    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
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QLCDNumber>
    #include <QSlider>
    #include <QColor>
     
    class MaFenetre : public QWidget
    {
        public:
        MaFenetre();
     
        private:
        QLCDNumber *m_lcd;
        QSlider *m_slider;
     
    };
    @+

  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 classe QLCDNumber n'a pas de méthode setColor. En revanche on peut lui assigner une palette pour changer la couleur des chiffres m_lcd->setPalette( QColor(158, 193, 76) );.

  3. #3
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    ok merci
    Où trouver un synoptique : classe, méthode ..



    Quelle classe intègre de la couleur pour du texte et des nombres ?

  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
    La documentation de Qt est assez bien fournie, et permet de voir quelles méthodes sont disponibles dans quelles classes.

    Si tu utilises Qt Creator il y a un panel aide sur la gauche.

  5. #5
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    m_lcd->setPalette( QColor(158, 193, 76) );
    Cela change le contour de la box en vert, mais par les chiffres dans cette box

    C'est pauvre de débuter avec des widgets ou conteneur sans couleur
    Est ce qu'un tuto apporte des compléments sur les couleurs ?

    @+

  6. #6
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Si tu regardes cette propriété : http://doc.qt.io/qt-5/qlcdnumber.html#segmentStyle-prop
    On y lit que selon le style les chiffres sont dessinés avec la couleur background ou la couleur foreground, dans ton code tu as mis cette propriété à QLCDNumber::Flat donc tu utilises une autre couleur de la palette que celle changée par défaut avec le code m_lcd->setPalette( QColor(158, 193, 76) );Tu peux changer avec plus de détails la palette d'un widget en assignant aux différents rôles les couleurs que tu veux http://doc.qt.io/qt-5/qpalette.html#setColor-2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QPalette palette = m_lcd->palette();
    // modifie la palette selon tes besoins, en l'occurrence
    palette.setColor(QPalette::WindowText, QColor(158, 193, 76));
    m_lcd->setPalette(palette);

  7. #7
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    ok , pas évident de passer du concept de base aux détails dans chaque classe

    http://qt.developpez.com/livres/inde...Qt#L0132354160

    Avec la page des meilleurs livres sur Qt, lequel peut donner une méthode de conception intermédiaire
    avec quelques exemples pas trop simplistes ?

    @+

  8. #8
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Ici il s'agit d'un cas assez particulier, sur un widget très spécifique. La majorité des widgets sont plus simples à personnaliser et les concepts Qt plus généraux.

    En très bref, tu peux regarder
    soit du côté des feuilles de style (type CSS) : http://doc.qt.io/qt-5/stylesheet.html
    soit du côté des styles ou de la QPalette pour changer les couleurs et d'autres détails (texture par exemple) http://doc.qt.io/qt-5/style-reference.html, classe QPalette (appliquerune palette à toute ton appli)
    soit envisager de surcharger la fonction virtuelle QWidget::paintEvent pour carrément dessiner toi même le widget

    Tout dépend de tes besoins, les solutions les plus simples seront aussi plus limitées en possibilités (même si je trouve que ça en laisse déjà assez pour la majorité des cas).

    Concernant des bouquins je n'ai pas de conseil à te donner je ne les connais pas, la doc est quand même assez bien faite et on trouve aussi pas mal de tuto ou de réponses aux questions sur le net.

  9. #9
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    J'ai réussi à sortir une horloge digitale dans un widget.

    C'est plus concret qu'une barre de défilement qui active QLCDNumber.

    [Résolu]

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/04/2013, 16h11
  2. [JpGraph] Gantt : ajouter de la couleur selon les horaires (nuit/jour) sur le fond
    Par lukeabate dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 16/03/2012, 17h03
  3. [PDF] TCPDF et ajout d'une couleur sur le texte
    Par zerros dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/03/2010, 13h45
  4. Réponses: 1
    Dernier message: 07/05/2006, 16h33
  5. Réponses: 6
    Dernier message: 06/12/2005, 15h52

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