|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() |
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
__________________
première pré-version de QExtend, projet de bibliothèque communautaire basée sur Qt. |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
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.
__________________
première pré-version de QExtend, projet de bibliothèque communautaire basée sur Qt. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com