Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 15h06   #1
haraelendil
Membre éclairé
 
Avatar de haraelendil
 
julien Lopez
Inscription : février 2004
Messages : 273
Détails du profil
Informations personnelles :
Nom : julien Lopez
Âge : 25
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : février 2004
Messages : 273
Points : 333
Points : 333
Envoyer un message via MSN à haraelendil
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
__________________
première pré-version de QExtend, projet de bibliothèque communautaire basée sur Qt.
haraelendil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 16h39   #2
haraelendil
Membre éclairé
 
Avatar de haraelendil
 
julien Lopez
Inscription : février 2004
Messages : 273
Détails du profil
Informations personnelles :
Nom : julien Lopez
Âge : 25
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : février 2004
Messages : 273
Points : 333
Points : 333
Envoyer un message via MSN à haraelendil
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.
haraelendil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h58.


 
 
 
 
Partenaires

Hébergement Web