PyGTK - Classe AspectFrame
La classe gtk.AspectFrame est une sous-classe de la classe Frame. Le widget enfant dans ce cadre conserve toujours ses proportions (de largeur et de hauteur) même si la fenêtre principale est redimensionnée.
La propriété ratio du widget gtk.AspectFrame détermine le rapport largeur / hauteur du widget. Un rapport hauteur / largeur de 0,5 signifie que la largeur correspond à la moitié de la hauteur; un rapport hauteur / largeur de 2,0 signifie que la largeur est le double de la hauteur. La valeur par défaut de la propriété «ratio» est 1,0.
La syntaxe suivante est utilisée pour le constructeur de la classe gtk.AspectFrame -
gtk.AspectFrame (label = None, xalign = 0.5, yalign = 0.5, ratio = 1.0, obey_child = True)
le xalignLa propriété détermine la fraction d' espace libre horizontal à gauche de l'enfant. 0.0 signifie pas d' espace libre à gauche, 1.0 signifie tout l' espace libre à gauche.
le yalignLa propriété détermine la fraction d' espace libre vertical au-dessus de l'enfant. 0.0 signifie pas d' espace libre au-dessus, 1.0 signifie tout l' espace libre au-dessus.
Le rapport largeur / hauteur du cadre est conservé si obey_child la propriété est False.
La propriété obey_child détermine si le ratio doit être ignoré. La valeur par défaut est True.
Le code suivant est similaire à celui utilisé pour la classe Frame. La seule différence est que la ButonBox est placée dans un widget AspectFrame.
frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
ratio = 5.0, obey_child = False)
Note - La propriété obey_child est définie sur False car il est souhaité de conserver le rapport hauteur / largeur même si la fenêtre est redimensionnée.
Exemple
Respectez le code suivant -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Aspect Frame Demo")
self.set_default_size(250, 200)
self.set_border_width(5)
frm = gtk.AspectFrame(label = None, xalign = 0.5, yalign = 0.5,
ratio = 5.0, obey_child = False)
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
frm.add(hb)
frm.set_label("Qualifications")
self.add(frm)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
Le code ci-dessus produira les fenêtres originales et redimensionnées suivantes -
Original Window
Resized Window