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

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2005年 3月 18日 (金) 02:31:02 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-cajas-detalles
-------------------------
TITLE       = tut-gtk-empaquetado-cajas-detalles
KEYWORD     = 
= Detalles sobre Empaquetado en Cajas
{{link "tut-gtk-empaquetado-teoria", "tut-gtk-empaquetado-intro", "tut-gtk", "tut-gtk-empaquetado-demo"}}

Debido a su flexibilidad, el empaquetado en GTK puede confundir al principio. Hay muchas opciones, y no resulta obvio como encajan unas con otras. Aun as en el fondo hay cinco estilos b$BaT(Bicos.

{{image_left("packbox1.png")}}{{br}}

Cada l$ByO(Bea contiene una caja horizontal (hbox) con varios botones. La llamada a Gtk::Box#pack en la forma de empaquetar cada uno de los botones en la hbox. Cada uno de los botones se empaqueta dentro de la hbox de la misma forma (p.e. mismos argumentos para el m$BqU(Bodo  Gtk::Box#pack_start).

El m$BqU(Bodo Gtk::Box#pack_start tiene la forma:

  Gtk::Box#pack_start(child, expand, fill, padding) 

El primer argumento es el objeto que se va a empaquetar en la caja. Por ahora todos los objetos van a ser botones, por lo que estamos empaquetando botones en cajas.

El argumento expand de Gtk::Box#pack_start y Gtk::Box#pack_end controla el lugar en que se situan los widgets dentro de la caja:

:Si expand es true
los widget ocupar$BaO(B todo el espacio extra en la caja, de forma que la caja se expande autom$BaU(Bicamente para ocupar todo el $BaS(Bea que se le ha asignado;

:Si expand es false
la caja se encoge para almacenar solo los widgets.

Dar a expand el valor false te permite justificar los widgets a izquierda o derecha. De otra forma, se expandir$BaO(B para entrar en la caja, y el mismo efecto se puede conseguir usando tan solo uno de los m$BqU(Bodos Gtk::Box#pack_start o Gtk::Box#pack_end.

El argumento fill controla como se ocupa el espacio asignado a cada objeto por la opci$B(B expand:

:Si fill es true
el objeto se extiende para ocupar todo el espacio posible;
:Si fill es false
el objeto se queda con su tama$B(B original, y se a$B(Bde un margen extra alrededor.

Hay que tener en cuenta que el argumento fill solo tiene efecto si el argumento expand es true.

Cuando se crea una nueva caja horizontal, se usa:
  Gtk::HBox.new(homogeneous, spacing) 

El argumento homogeneous de Gtk::HBox.new (y el mismo de Gtk::VBox.new) controla si cada objeto de la caja tiene el mismo tama$B(B (p.e. el mismo ancho en una caja horizontal, o el mismo alto en una vertical). Si estactivado, los m$BqU(Bodos Gtk::Box#pack_start y Gtk::Box#pack_end trabajan como si el argumento expand fuera siempre true.

$B?C(Bual es la diferencia entre spacing (asignado al crear la caja) y padding (asignado cuando los elementos son empauqetados)? Spacing es un espacio que se a$Bqa(Bde entre objetos, y padding se a$Bqa(Bde a cada lado de un objeto. La diferencia se ve claramente en la siguiente im$Bag(Ben:

{{image_left("packbox2.png")}}{{br}}

En la siguiente secci$Bsn(B se muestra el c$Bsd(Bigo usado para generar las im$Bag(Benes anteriores. Estmuy comentado, por lo que no tendrproblemas para seguirlo.






ruby-gnome2-cvs メーリングリストの案内
Back to archive index