Les cadres sont utilisés pour englober un ou plusieurs groupes de widgets dans une boîte qui peut, éventuellement, avoir une étiquette. La position de l'étiquette et le style de la boîte sont modifiables.
A Frame
can be created with the following
function:
Un cadre Frame
se crée en utilisant :
cadre = gtk.Frame(label
=None)
... où l'étiquette label
est placée,
par défaut, dans le coin supérieur gauche du cadre. Donner la valeur
"None" au paramètre label
ou ne pas indiquer de
paramètre label
entraînera qu'aucune étiquette
ne sera affichée. Le texte de l'étiquette est modifiable par :
cadre.set_label(label
)
Pour modifier la position de l'étiquette, on utilise la méthode :
cadre.set_label_align(xalign
,yalign
)
...où xalign
et yalign
ont une valeur comprise entre 0.0 et 1.0. L'argument
xalign
donne la position de l'étiquette sur le
bord horizontal du cadre. Le paramètre yalign
n'est pas utilisé actuellement. La valeur par défaut de
xalign
est 0.0, ce qui place l'étiquette
sur le coté gauche du cadre.
La méthode suivante modifie le style de la boîte qui délimite le cadre.
cadre.set_shadow_type(type
)
... où le paramètre type
peur prendre l'un des
valeurs suivantes :
SHADOW_NONE SHADOW_IN SHADOW_OUT SHADOW_ETCHED_IN # par défaut SHADOW_ETCHED_OUT
Le programme frame.py
montre l'utilisation du widget de cadre Frame
.
La Figure 10.4, « Exemple de cadre » illustre le résultat obtenu :
Voici le code du programme frame.py
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # exemple frame.py 4 5 import pygtk 6 pygtk.require('2.0') 7 import gtk 8 9 class ExempleCadre: 10 def __init__(self): 11 # Créer une nouvelle fenêtre 12 fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL) 13 fenetre.set_title("Exemple de cadre") 14 15 # On connecte l'évènement "destroy" au gestionnaire de signal 16 fenetre.connect("destroy", lambda w: gtk.main_quit()) 17 fenetre.set_size_request(300, 300) 18 19 # On définit la largeur de bordure de la fenêtre 20 fenetre.set_border_width(10) 21 22 # On crée un cadre 23 cadre = gtk.Frame() 24 fenetre.add(cadre) 25 26 # On indique l'étiquette du cadre 27 cadre.set_label("Widget GTK Cadre") 28 29 # On aligne l'étiquette sur la droite du cadre 30 cadre.set_label_align(1.0, 0.0) 31 32 # On précise le style du cadre 33 cadre.set_shadow_type(gtk.SHADOW_ETCHED_OUT) 34 cadre.show() 35 36 # On affiche la fenêtre 37 fenetre.show() 38 39 def main(): 40 # Enter the event loop 41 gtk.main() 42 return 0 43 44 if __name__ == "__main__": 45 ExempleCadre() 46 main()
Les programmes calendar.py, label.py et spinbutton.py utilisent aussi des cadres.