PyGTK - Classe di allineamento

Questo widget si rivela utile per controllare l'allineamento e le dimensioni dei suoi widget figlio. Ha quattro proprietà chiamate xalign, yalign, xscale e yscale. Le proprietà di scala specificano la quantità di spazio libero che verrà utilizzata dai widget figlio. Le proprietà di allineamento vengono utilizzate per posizionare il widget figlio all'interno dell'area disponibile.

Tutte e quattro le proprietà assumono un valore float compreso tra 0 e 1.0. Se le proprietà xscale e yscale sono impostate su 0, significa che il widget non assorbe lo spazio libero e se impostato su 1, il widget assorbe il massimo spazio libero rispettivamente in orizzontale o in verticale.

La proprietà xalign e yalign se impostata su 0, significa che non ci sarà spazio libero a sinistra o sopra il widget. Se impostato su 1, ci sarà il massimo spazio libero a sinistra o sopra il widget.

La classe gtk.alignment ha il seguente costruttore:

gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)

Dove,

  • xalign - È la frazione dello spazio libero orizzontale a sinistra del widget figlio.

  • yalign - È la frazione dello spazio libero verticale sopra il widget figlio.

  • xscale - È la frazione di spazio libero orizzontale che il widget figlio assorbe.

  • yscale - È la frazione dello spazio libero verticale che il widget figlio assorbe.

Esempio

Il codice seguente mostra l'uso del widget gtk.alignment. Una Vbox nella finestra di primo livello ha una Vbox superiore e una Hbox inferiore posizionate in essa. Nella casella verticale superiore, un'etichetta e un widget Entry sono posizionati in modo tale che verso sinistra, il 50% dello spazio viene mantenuto libero e più del 25% di questo viene occupato assegnando 0,5 xalign e 0,25 alle proprietà yalign.

Nell'HBox inferiore, tutto lo spazio libero disponibile è sul lato sinistro. Ciò si ottiene assegnando 1 alla proprietà xalign. Quindi, due pulsanti nella casella orizzontale appaiono allineati a destra.

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Alignment demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
		
      vbox = gtk.VBox(False, 5)
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
      valign = gtk.Alignment(0.5,0.25, 0, 0)
		
      lbl = gtk.Label("Name of student")
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
      vbox.pack_start(valign)
		
      ok = gtk.Button("OK")
      ok.set_size_request(70, 30)
		
      close = gtk.Button("Close")
      hbox.add(ok)
      hbox.add(close)
		
      halign = gtk.Alignment(1, 0, 0, 0)
      halign.add(hbox)
		
      vbox.pack_start(halign, False, False, 3)
		
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

Il codice precedente produce il seguente output: