Grid (Python) Tiffany Antopolski tiffany.antopolski@gmail.com 2012 Marta Maria Casetti mmcasetti@gmail.com 2012 Empaquetar widgets en filas y columnas Daniel Mustieles daniel.mustieles@gmail.com 2011 - 2017 Nicolás Satragno nsatragno@gmail.com 2012 - 2013 Jorge González jorgegonz@svn.gnome.org 2011 Rejilla

Algunas etiquetas en una rejilla.

Código usado para generar este ejemplo from gi.repository import Gtk import sys class MyWindow(Gtk.ApplicationWindow): def __init__(self, app): Gtk.Window.__init__(self, title="Grid Example", application=app) # three labels label_top_left = Gtk.Label(label="This is Top Left") label_top_right = Gtk.Label(label="This is Top Right") label_bottom = Gtk.Label(label="This is Bottom") # a grid grid = Gtk.Grid() # some space between the columns of the grid grid.set_column_spacing(20) # in the grid: # attach the first label in the top left corner grid.attach(label_top_left, 0, 0, 1, 1) # attach the second label grid.attach(label_top_right, 1, 0, 1, 1) # attach the third label below the first label grid.attach_next_to( label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1) # add the grid to the window self.add(grid) class MyApplication(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_activate(self): win = MyWindow(self) win.show_all() app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)
Métodos útiles para un widget «Grid»

Para añadir un widget hijo en la posición izquierda, arriba en un espacio de una anchura, altura dada use attach(hijo, arriba, izquierda, anchura, altura. Si un widget hermano ya está en posición, también se puede usar attach_next_to(hijo, hermano, lado, anchura, altura), donde lado puede ser Gtk.PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM.

insert_row(posición) e insert_column(posición) hacen que los hijos añadidos en esa posición o por debajo se muevan una fila hacia abajo, y que los hijos que se extienden a lo largo de esta posición crezcan para ocupar la siguiente fila. insert_next_to(hermano, lado) inserta una fila o columna en la posición especificada. La fila o columna nueva se pone al lado del hermano, a su lado; si es Gtk.PositionType.TOP or Gtk.PositionType.BOTTOM, se inserta una fila; si es Gtk.PositionType.LEFT o Gtk.PositionType.RIGHT, se inserta una columna.

set_row_homogeneous(True) y set_column_homogeneous(True) se aseguran de que (respectivamente) cada fila o cada columna tengan la misma anchura o altura.

set_row_spacing(espaciado) y set_column_spacing(espaciado) fuerzan un espaciado entre (respectivamente) filas o columnas. El valor de espaciado puede estar entre 0, que es el valor predeterminado, y 32767.

Referencias de la API

En este ejemplo se usa lo siguiente:

GtkApplication

GtkApplicationWindow

GtkLabel

GtkImage

GtkGrid