[ruby-gnome2-doc-cvs] [Hiki] create - tut-gtk-empaquetado-tablas

Zurück zum Archiv-Index

ruby-****@sourc***** ruby-****@sourc*****
2005年 3月 18日 (金) 02:38:22 JST


-------------------------
REMOTE_ADDR = 213.37.10.235
REMOTE_HOST = 
REMOTE_USER = ruby-gnome2-hiki        URL = http://ruby-gnome2.sourceforge.jp/cgi-bin/hiki/es/hiki.cgi?tut-gtk-empaquetado-tablas
-------------------------
TITLE       = tut-gtk-empaquetado-tablas
KEYWORD     = 
= Empaquetado con Tablas
{{link "tut-gtk-empaquetado-demo", "tut-gtk-empaquetado-intro", "tut-gtk", "tut-gtk-empaquetado-tablas-demo"}}

Veamos otro sistema de empaquetado: Tablas. Estas pueden ser extremadamente $B(Biles en ciertas situaciones.

Usando tablas, creamos una rejilla en la que colocar widgets. Los widgets pueden ocupar tantos espacios como nosotros especifiquemos.

El primer paso, por supuesto, es el constructor Gtk::Table.new:

  Gtk::Table.new(rows, columns, homogeneous) 

El primer argumento es el n$B(Bero de filas de la tabla, mientras que el segundo, obviamente, es el n$B(Bero de columnas.

El argumento homogeneous tiene que ver con el tama$B(B que toman las celdas de la tabla. Si homogeneous es true, las celdas de la tabla se redimensionan a la medida del widget m$BaT(B grande. Si homogeneous es false, el tama$B(B de las celdas viene indicado por el widget m$BaT(B alto de su misma fila, y por el m$BaT(B ancho de su columna.

Las filas y las columnas se enumeran de 0 a n, donde n era el n$B(Bero especificado en Gtk::Table.new. Entonces, si especificas rows = 2 y columns = 2, la distribuci$B(B seralgo parecido a esto:

  .0          1          2
  0+----------+----------+
   |          |          |
  1+----------+----------+
   |          |          |
  2+----------+----------+

Hay que tener en cuenta que el sistema de coordenadas comienza en la esquina superior izquierda. Para situar un widget en una celda, hay que usar el siguiente m$BqU(Bodo:

  Gtk::Table#attach(child, 
                    left_attach, right_attach, top_attach, bottom_attach, 
                    xoptions, yoptions, 
                    xpadding, ypadding)

El primer argumento ("child") es el widget que quieres situar en la tabla.

Los argumentos left y rigth attach especifican donde situar el widget, y cuantas celdas usar. Si quieres un bot$B(B en la parte inferior izquierda de nuestra tabla de 2x2, y quieres que solo ocupe esa celda, left_attach valdr$ByB(B 1, right_attach 2, top_attach 1, bottom_attach 2.

Ahora, si quiere un widget que ocupe la fila superior entera de nuestra tabla 2x2, usar$ByB(B: left_attach 0, right_attach 2, top_attach 0, bottom_attach 1.

Las xoptions e yoptions se usan para especificar opciones de empaquetado, y pueden ser combinadas usando el operador OR para permitir opciones m$B(Btiples.

Estas opciones son:

:Gtk::FILL
 Si la celda es m$BaT(B grande que el widget, entonces este widget se expandirpara usar todo el espacio disponible.

:Gtk::SHRINK
Si la  tabla dispone de menos espacio del requerido (normalmente debido a que el usuario redimensiona la ventana), entonces los widgets son empujados normalmente al fondo de la ventana y desaparecen. Si Gtk::SHRINK es especificado, los widgets se reducir$BaO(B con la tabla.

:Gtk::EXPAND
 Esta propiedad harque la tabla se expanda para usar todo el espacio disponible de la ventana.

Padding act$B(B como en Gtk::Box, creando un $BaS(Bea vac$ByB(B alrededor del widget medida en pixels.

Gtk::Table#attach tiene muchas opciones. Asque aquhay un atajo:

  Gtk::Table#attach_defaults(widget, left_attach, right_attach, top_attach, bottom_attach)

Las opciones X e Y predeterminadas son Gtk::FILL | Gtk::EXPAND, y el padding x e y se fijan a 0. El resto de argumentos son id$BqO(Bticos a los del m$BqU(Bodo anterior.

Tambi$BqO(B tenemos los m$BqU(Bodos Gtk::Table#set_row_spacing y Gtk::Table#set_col_spacing. Estos sit$B(Bn m$BaS(Bgenes entre celdas en la fila o columna especificada.

  Gtk::Table#set_row_spacing(row, spacing)
  Gtk::Table#set_col_spacing(column, spacing) 

Hay que tener en cuenta, que el margen va a la derecha de la columna, y para las filas, debajo.

Tambi$BqO(B se puede fijar un margen constante para todas las filas y/o columnas con:

  Gtk::Table#set_row_spacings(spacing)
  Gtk::Table#set_col_spacings(spacing) 

N$B(Bese que con estos m$BqU(Bodos, la $B(Btima fila y la $B(Btima columna no tendr$BaO(B ning$B(B margen.






ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index