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: