# 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 - 2014
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