Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre éclairé Avatar de haraelendil
    Profil pro julien Lopez
    Inscrit en
    février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Nom : julien Lopez
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : février 2004
    Messages : 283
    Points : 358
    Points
    358

    Par défaut dessiner highlight selection dans une liste

    Salut salut.

    Voila, j'ai un petit problème épineux que je n'arrive pas à résoudre, j’espère que quelqu'un pourra m'aider:

    J'ai une liste avec notamment ici un delegate perso qui, pour certaines colonnes, dessine lui même le contenu de la case, et pour les autres (la plupart des colonnes de la liste), appelle juste la méthode paint de QStyledItemDelegate.

    Donc le rendu est comme je voudrais, sauf pour la ligne sélectionnée.
    En effet, pour les cases dessinées par QStyledItemDelegate, le fond est dessiné en bleu pour marquer la sélection.

    J'ai réussi à reproduire un peu ce comportement en récupérant la brush highlight() de la palette passée en paramètre (via un QStyleOptionViewItem), mais ça ne donne pas tout à fait le même résultat:

    Les autre colonnes ont un espèce de dégradé bleu, en fait, après inspection plus attentive, juste deux couleurs, celle du bas qui semble correspondre à la brush highlight(), et celle du haut un peu plus claire.

    Quelqu'un a une idée de comment Qt récupère (ou calcule) cette deuxième couleur, que je puisse avoir un résultat homogène?

    merci d'avance

  2. #2
    Membre éclairé Avatar de haraelendil
    Profil pro julien Lopez
    Inscrit en
    février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Nom : julien Lopez
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : février 2004
    Messages : 283
    Points : 358
    Points
    358

    Par défaut

    Bon bah après un week end à pas avancer, j'ai fini par trouvé, c'est très con une fois qu'on connait l'astuce, mais quand on sait pas, c'est une autre histoire :p

    Donc si quelqu'un à besoin, voila la solution:

    En fait il faut juste passer par QStyle et drawPrimitive pour faire le boulot, et c'est magique ça roule tout seul.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •