Le widget d'alignement Alignment
permet
de placer un widget dans sa fenêtre à une position et taille relatives
à la taille du widget d'alignement lui-même. Ce qui peut être trés utile pour,
par exemple, centrer un widget dans sa fenêtre.
Il n'y a que deux appels [1] liés au widget d'alignement :
alignement = gtk.Alignment(xalign
=0.0,yalign
=0.0,xscale
=0.0,yscale
=0.0) alignement.set(xalign
,yalign
,xscale
,yscale
)
La fonction gtk.Alignment
() crée
un nouveau widget d'alignement Alignment
avec
les paramètres indiqués. La méthode set
() permet
de modifier les paramètres d'un widget d'alignement préexistant.
Les quatres paramètres d'alignement sont des nombres
décimaux, compris entre 0.0 et 1.0. Les paramètres xalign
et yalign
influent sur la position du widget placé dans
le widget d'alignement (voir
gtk.Alignment
dans le manuel de référence).
Les propriétés d'alignement indiquent le rapport d'espace libre
existant au-dessus et à gauche du widget enfant. Leurs valeurs sont comprises
entre 0.0 (pas d'espace libre au-dessus, ni à gauche) et 1.0
(tout l'espace libre au-dessus et à gauche). Bien sûr,
si les échelles sont toutes les deux fixées à 1.0, les propriétés d'alignement
n'auront pas d'effet car le widget enfant s'étendra pour remplir tout l'espace
disponible.
Les paramètres xscale
et
yscale
indiquent la fraction d'espace
libre qui sera absorbé par le widget enfant. Leurs
valeurs sont comprises entre 0.0 (le widget n'absorbe aucun espace) et
1.0 (le widget absorbe tout l'espace libre.
Un exemple[2] pour rendre les choses plus claires :
un widget bouton (gtk.Button) de 32x32 pixels est placé dans un widget d'alignement de 256 pixels de large sur 128 pixels de haut. Les valeurs d'alignement sont, xalign=0.25, yalign=0.25, xscale=0.25, yscale=0.25.
l'espace libre horizontal vaut 256-32=224 pixels, l'espace libre vertical vaut 128-32=96 pixels.
Le bouton absorbe 0.25x224=56 pixels de l'espace horizontal et 0.25x96=24 pixels de l'espace vertical. Sa taille devient donc 32+56=88 pixels de large pour 32+24=56 pixels de haut.
Ce qui nous laisse 256-88=168 pixels d'espace libre horizontal et 128-56=72 pixels d'espace libre vertical. Puisque les valeurs de xalign et yalign sont de 0.25, l'espace libre horizontal est distribué entre 0.25x168=42 pixels à gauche du bouton et le reste à doite ; l'espace libre vertical est réparti entre 0.25x72=18 pixels au-dessus et le reste en dessous.
On peut ajouter un widget enfant à un widget d'alignement par :
alignement.add(widget
)
Pour un exemple d'utilisation du widget d'alignement , voir le programme progressbar.py sur la barre de progression.
[1]
NdT : depuis PyGTK 2.4., il y a aussi
gtk.Alignment.set_padding
() et
gtk.Alignment.get_padding
().
[2] NdT : pris dans le manuel de référence
gtk.Alignment