PyGTK - Clase de diseño
El gtk.Layout es un widget contenedor similar a gtk.Fixed. Los widgets se colocan en el widget de diseño especificando coordenadas absolutas. Sin embargo, el diseño difiere del widget fijo en las siguientes formas:
El widget de diseño puede tener un ancho y un alto infinitos. El valor máximo de ancho y alto está limitado por el tamaño del entero sin signo.
Un widget gtk.DrawingArea puede incluirse en un contenedor de diseño. DrawingArea es un lienzo en el que se pueden dibujar elementos 2D como líneas, rectángulos, etc.
Para colocar el contenedor Layout en la ventana de nivel superior de menores dimensiones, se puede asociar con las barras de desplazamiento o se puede colocar en una ScrolledWindow.
La clase gtk.Layout tiene el siguiente constructor:
gtk.Layout(hadjustment = None, vadjustment = None)
los hadjustment y vadjustment Las propiedades representan un objeto que tiene un valor acotado ajustable.
La siguiente tabla enumera los métodos de diseño más utilizados:
poner (widget, x, y) | Coloca un widget secundario en las coordenadas especificadas |
set_size (ancho, alto) | Establece el tamaño del contenedor Diseño en el ancho y alto especificado |
El objeto Layout emite la señal set_scroll_adjustment cuando se modifican los ajustes asociados con él.
Ejemplo
En el siguiente ejemplo, una etiqueta tiene un ritmo en el centro de un contenedor de diseño, que a su vez se debe colocar en una ventana de nivel superior de menor tamaño. Por lo tanto, primero se agrega a ScrolledWindow y luego se agrega ScrolledWindow a la ventana principal.
Observe el código -
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()
El código anterior generará la siguiente salida: