PyGTK - Classe layout

Gtk.Layout è un widget contenitore simile a gtk.Fixed. I widget vengono inseriti nel widget Layout specificando le coordinate assolute. Tuttavia, il layout differisce dal widget fisso nei seguenti modi:

  • Il widget di layout può avere larghezza e altezza infinite. Il valore massimo di larghezza e altezza è limitato dalla dimensione dell'intero senza segno.

  • Un widget gtk.DrawingArea può essere racchiuso in un contenitore di layout. DrawingArea è una tela su cui è possibile disegnare elementi 2D come linea, rettangolo, ecc.

  • Per mettere il contenitore Layout nella finestra di primo livello di dimensioni minori, può essere associato alle barre di scorrimento o può essere posizionato in una Finestra a scorrimento.

La classe gtk.Layout ha il seguente costruttore:

gtk.Layout(hadjustment = None, vadjustment = None)

Il hadjustment e vadjustment le proprietà rappresentano un oggetto con un valore limitato regolabile.

La tabella seguente elenca i metodi di layout utilizzati di frequente:

put (widget, x, y) Posiziona un widget figlio alle coordinate specificate
set_size (w, h) Imposta la dimensione del contenitore Layout sulla larghezza e l'altezza specificate

L'oggetto Layout emette il segnale set_scroll_adjustment quando vengono modificate le regolazioni ad esso associate.

Esempio

Nell'esempio seguente, un'etichetta viene stimolata al centro di un contenitore Layout, che a sua volta deve essere posizionato in una finestra di primo livello di dimensioni inferiori. Quindi, viene prima aggiunto a ScrolledWindow e ScrolledWindow viene quindi aggiunto alla finestra principale.

Rispetta il codice -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("layout")
      self.set_size_request(300,200)
      self.set_position(gtk.WIN_POS_CENTER)
      sc = gtk.ScrolledWindow()
      lo = gtk.Layout()
      lo.set_size(400,400)
      button = gtk.Button("Press Me")
      lo.put(button, 125,200)
      sc.add(lo)
      self.add(sc)
      self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

Il codice sopra genererà il seguente output: