Un widget ColorButton
fournit une manière commode d'afficher
une couleur dans un bouton que l'on peut cliquer pour ouvrir une fenêtre
ColorSelectionDialog
de choix de couleur. C'est utile pour
afficher et sélectionner des couleurs dans un dialogue de préférence d'utilisateur. Un
ColorButton
se charge d'établir, d'afficher et récupérer le
résultat de la fenêtre de sélection de couleur ColorSelectionDialog
.
On crée un ColorButton
par le constructeur :
colorbutton = gtk.ColorButton(color
=gtk.gdk.Color(0,0,0))
La couleur de départ peut être précisée par le paramètre
color
ou établie par la suite avec la méthode :
colorbutton.set_color(color
)
Le titre de la fenêtre ColorSelectionDialog
qui
s'affiche quand on clique sur le bouton peut être fixé et récupéré par
la méthode :
colorbutton.set_title(title
)
title = colorbutton.get_title()
L'opacité de la couleur est fixée en utilisant le canal alpha. Les méthodes suivantes récupèrent et fixent l'opacité de la couleur dans une gamme de 0 (transparent) à 65535 (opaque) :
alpha = colorbutton.get_alpha()
colorbutton.set_alpha(alpha
)
Par défaut, la valeur alpha est ignorée car la propriété "use_alpha" est
fixée à FALSE
. La valeur de cette propriété "use_alpha"
peut être fixée et récupérée par la méthode :
colorbutton.set_use_alpha(use_alpha
)
use_alpha = colorbutton.get_use_alpha()
Si "use_alpha" vaut TRUE
, la fenêtre
ColorSelectionDialog
affiche un curseur pour régler
l'opacité et montre la couleur sur un fond à damier.
On peut surveiller les changements de la couleur choisie en se reliant au signal "color-set" qui est émis quand l'utilisateur choisit une couleur. La fonction de rappel du signal est :
def color_set_cb(colorbutton, user_data):
Le programme colorbutton.py illustre
l'utilisation du bouton de couleur ColorButton
. La
Figure 16.8, « Exemple de bouton de couleur » montre le programme en cours d'exécution.
Comme le ColorButton
, le bouton de police
FontButton
est un widget pratique qui fournit un aperçu
de la police actuellement choisie et qui ouvre une fenêtre
FontSelectionDialog
quand on le clique. Un bouton
FontButton
se charge d'établir, d'afficher et récupérer le
résultat de la fenêtre de sélection de police FontSelectionDialog
.
On le crée par le constructeur :
boutonpolice = gtk.FontButton(nompolice
=None)
... où nompolice
est une chaîne indiquant la police courante
de la fenêtre FontSelectionDialog
. Par exemple,
le nom de la police peut être écrit comme 'Sans 12', 'Sans Bold 14', ou
'Monospace Italic 14'. Il est nécessaire d'indiquer au minimum la famille
et la taille de la police.
La police en cours peut aussi être fixée et récupérée par les méthodes suivantes :
resultat = boutonpolice.set_font_name(nompolice
)
nompolice = boutonpolice.get_font_name()
... où resultat
renvoie TRUE
ou
FALSE
pour indiquer si la prise en compte de la police a été
réalisée avec succès.
Le FontButton
possède un certain nombre de propriétés et
méthodes associées qui agissent sur l'affichage de la police en cours dans le
bouton FontButton
. Les propriétés "show-size" et
"show-style" contiennent des valeurs booléennes qui contrôlent si la taille et
le style seront affichés dans l'étiquette du bouton. Les méthodes suivantes
fixent et récupèrent les valeurs de ces propriétés :
boutonpolice.set_show_style(show_style
) show_style = boutonpolice.get_show_style() boutonpolice.set_show_size(show_size
) show_size = boutonpolice.get_show_size()
Autre manière, vous pouvez utiliser la taille et le style actuellement affichés par l'étiquette pour illustrer directement le choix de police. Voici les méthodes associées aux propriétés "use-size" et "use-font" :
boutonpolice.set_use_font(use_font
) use_font = boutonpolice.get_use_font() boutonpolice.set_use_size(use_size
) use_size = boutonpolice.get_use_size()
Employer la police courante sur l'étiquette semble une technique utile
malgré les inévitables changements de taille du bouton mais utiliser la taille
choisie n'apparait pas aussi utile, surtout avec de trés grandes ou trés petites
tailles de police. Il faut noter que si on fixe "use-font" ou "use-size" à
TRUE
pour ensuite les mettre à FALSE
,
les dernières polices et tailles utilisées seront conservées. Par exemple,
si "use-font" et "use-size" ont la valeur TRUE
et que
la police actuelle est Monospace Italic 20
, l'étiquette
du bouton FontButton
s'affiche en
Monospace Italic 20
; puis si "use-font" et "use-size"
passent à FALSE
et que la police en cours est modifiée
en Sans 12
, l'étiquette s'affichera encore en
Monospace Italic 20
. Employez le programme d'exemple
fontbutton.py pour voir
comment ceci fonctionne.
Enfin, le titre de la fenêtre FontSelectionDialog
peut être fixé et récupéré grâce aux méthodes :
boutonpolice.set_title(titre
)
titre = boutonpolice.get_title()
Comme pour le bouton ColorButton
, on peut surveiller
les changements dans la police en cours en se connectant au signal émis
lorsque l'utilisateur choisit une police. La fonction de rappel du signal
a la forme :
def fct_rappel_choixpolice(boutonpolice, données utilisateur):
Le programme d'exemple fontbutton.py
illustre l'utilisation du FontButton
. On peut fixer les
propriétés "use-font", "use-size", "show-size" et "show-style" avec les boutons
interrupteurs. La Figure 16.9, « Exemple de bouton de police » montre le programme
en cours d'exécution.