Les méthodes suivantes définissent et récupèrent le style associé à un widget:
widget.set_style(style
)
style = widget.get_style()
La fonction :
style = get_default_style()
récupère le style par défaut.
Un style contient les informations graphiques dont a besoin un widget pour s'afficher dans les cinq états possibles :
STATE_NORMAL # état pendant les opérations normales. STATE_ACTIVE # le widget est actif, (ex :un bouton pressé). STATE_PRELIGHT # le pointeur de la souris est au-dessus du widget. STATE_SELECTED # le widget est sélectionné. STATE_INSENSITIVE # le widget est insensible.
Un style comprend les attributs suivants :
fg # une liste de 5 couleurs de premier plan - une pour chaque état bg # une liste de 5 couleurs de fond light # une liste de 5 couleurs - créés dans la méthode set_style() dark # une liste de 5 couleurs - créés dans la méthode set_style() mid # une liste de 5 couleurs - créés dans la méthode set_style() text # une liste de 5 couleurs base # une liste de 5 couleurs text_aa # une liste de 5 couleurs intermediaire entre text/base black # la couleur noire white # la couleur blanche font_desc # la description de police pango par défaut xthickness # ythickness # fg_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() bg_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() light_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() dark_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() mid_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() text_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() base_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() black_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() white_gc # une liste de 5 contextes graphiques - créés dans la méthode set_style() bg_pixmap # une liste de 5 GdkPixmaps
Chaque attribut peut être défini directement, par exemple
style.black
et
style.fg_gc[gtk.STATE_NORMAL]
. Tous les attributs
sont en lecture seule excepté style.black
,
style.white
, style.black_gc
et
style.white_gc
.
Un style existant peut être recopié pour être modifié ensuite par le méthode :
nouveau_style = style.copy()
... qui copie les attributs de style
à
l'exception des listes de contexte graphique et des listes de couleurs
light, dark et mid (clair, foncé et médian).
Le style actuel d'un widget peut être connu par :
style = widget.get_style()
Pour modifier le style d'un widget (par exemple sa couleur de premier plan), il faut utiliser la méthode :
widget.modify_fg(etat, couleur) widget.modify_bg(etat, couleur) widget.modify_text(etat, couleur) widget.modify_base(etat, couleur) widget.modify_font(font_desc) widget.set_style(style)
En définissant le paramètre style
, on crée le
contexte graphique et on alloue les couleurs. La plupart des widgets
se redessinent automatiquement lorsque le style a été modifié. Si
le paramètre style
vaut None
,
le widget reviendra à son apparence par défaut.
Un widget n'est pas affecté par tous les changements de style. Par exemple,
modifier la couleur de fond d'une étiquette (Label
)
ne changera pas la couleur de fond affichée car le widget
Label
ne possède pas son propre
gtk.gdk.Window
. L'arrère-plan de l'étiquette dépend
de la couleur de fond de son parent. Utiliser un EventBox
pour contenir l'étiquette (Label
) permet de définir
sa couleur de fond. Se reporter à la section 10.1, “The EventBox”
(non encore traduit) pour voir un exemple.