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

Qt Quick Discussion :

TableView avec un modèle : changer la couleur du texte


Sujet :

Qt Quick

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut TableView avec un modèle : changer la couleur du texte
    Bonjour,

    À partir d'un QAbstractListModel (cf mon précédent topic), j'émets le signal dataChanged() avec les paramètres qui vont bien, et ça fonctionne: le contenu de ma vue est bien mis à jour.

    Mais seulement le contenu, pas la couleur. En effet, si je fais dépendre la couleur d'un état de mon objet, alors celle-ci est bien calculée au début, mais si cet état change, elle n'est jamais mise à jour.

    Voici une simplification (pour n'en garder que l'essentiel) de l'itemDelegate de ma TableView en QML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TableView {
        model: myModel
     
        itemDelegate: Text {
            text: debug("value", styleData.value)
            color: debug("color", myModel.getMyBooleanState(styleData.row) ? 'blue' : 'red')
        }
     
        // …
    }
    Voici ma fonction debug() qui me sert juste à savoir quand la propriété est mise à jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function debug(tag, value) {
        console.log(tag + ": " + value)
        return value
    }
    getMyBooleanState() est une fonction membre de mon modèle, qui retourne un état (booléen) pour chaque row:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Q_INVOKABLE bool getMyBooleanState(int rowIndex) const;
    Au démarrage, le texte et la couleur sont bien initialisés correctement.
    Mais à chaque fois que dataChanged() est appelé, seule la valeur est mise à jour, pas la couleur.

    Comment puis-je mettre à jour la couleur également?

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    As-tu essayer avec styleData.textColor ?

    @+

    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/10/2012, 17h05
  2. Réponses: 4
    Dernier message: 25/03/2011, 10h23
  3. [DropDownList] changer la couleur du texte
    Par Scorff dans le forum ASP.NET
    Réponses: 39
    Dernier message: 30/08/2005, 15h30
  4. Réponses: 2
    Dernier message: 04/02/2005, 00h42
  5. Changer la couleur du texte lors passage souris sur un TD !
    Par Kokito dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/01/2005, 16h40

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