ruby-****@sourc*****
ruby-****@sourc*****
2003年 9月 7日 (日) 20:12:33 JST
------------------------- REMOTE_ADDR = 217.117.55.140 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/fr?tut-gtk-tables ------------------------- = Placement avec les tables 部udions une autre m蜚hode de placement: les tables. Elles peuvent s'av蜥er tr蓴 utiles dans certaines situations. En utilisant des tables, on cr蜈 une grille dans laquelle on peut placer les widgets. Ceux-ci peuvent occuper tous les endroits que l'on d蜩ire. La premi蓿e chose faire est, bien s〓, d'蜚udier le constructeur Gtk::Table.new: Gtk::Table.new(rows, columns, homogeneous) Le premier param蔗re est le nombre de lignes de la table et le deuxi蓁e, le nombre de colonnes. Le param蔗re homogeneous s'occupe de la fa苡n dont les cases de la table seront dimensionn蜈s. Si homogeneous vaut true, les cases prennent la taille du plus grand widget de la table. S'il vaut false, la taille des cases d蜷end du widget le plus haut de la ligne et du plus large de cette colonne. Le nombre de lignes et colonnes va de 0 n, on est le nombre sp蜒ifidans l'appel Gtk::Table.new. Ainsi, avec rows = 2 et columns = 2, la table ressemblera ceci: .0 1 2 0+----------+----------+ | | | 1+----------+----------+ | | | 2+----------+----------+ On notera que le syst蓁e de coordonn蜈s part du coin en haut gauche. Pour placer un widget dans une case, ou utilise la m蜚hode suivante: Gtk::Table#attach(child, left_attach, right_attach, top_attach, bottom_attach, xoptions, yoptions, xpadding, ypadding) Le premier argument (child) est le widget que l'on veut placer dans la table. Les param蔗res left et right attach sp蜒ifient l'emplacement du widget et le nombre de cases utiliser. Par exemple, si on veut placer un bouton dans le coin inf蜥ieur droit de notre table 2x2 et que l'on d蜩ire ne remplir que cette case, left_attach vaudra 1, right_attach vaudra 2; top_attach vaudra 1 et bottom_attach vaudra 2. Maintenant, si on veut un widget occupant toute la ligne sup蜥ieure de notre table 2x2, on utilisera les valeurs left_attach = 0, right_attach = 2, top_attach = 0, bottom_attach = 1. Les param蔗res xoptions et yoptions servent pr蜒iser les options de placement et peuvent 褪re combin蜈s par un OU logique((-Dans Ruby, l'op蜥ateur OU est repr蜩entpar le caract蓿e | (pipe).-)) pour permettre des options multiples. Ces options sont: :Gtk::FILL Si la case de la table est plus large que le widget, alors ce dernier s'蛹argira pour occuper toute la place disponible. :Gtk::SHRINK Si la table a moins de place qu'il ne lui en faut (g蜴蜥alement, cause d'un redimensionnement de la fen褪re par l'utilisateur), les widgets sont alors simplement pouss蜩 vers le bas de la fen褪re et disparaissent. Si Gtk::SHRINK est sp蜒ifi les widgets se r蜆uiront en m褄e temps que la table. :Gtk:EXPAND Cette option provoque l'extension de la table pour qu'elle utilise tout l'espace restant dans la fen褪re. Les param褪res de padding jouent le m褄e r〓e que pour les bo銓es, ils cr蜈nt une zone libre, sp蜒ifi蜈 en pixels, autour du widget. Gtk::Table#attach a beaucoup d'options. Voici donc une m蜚hode-raccourci: Gtk::Table#attach_defaults(widget, left_attach, right_attach, top_attach, bottom_attach) Les options X et Y valent par d蜀aut GTK_FILL | GTK_EXPAND, et X et Y padding valent 0. Les autres param蔗res sont les m褄es que ceux de la m蜚hode pr蜒蜆ente. Il existe aussi les m蜚hodes Gtk::Table#set_row_spacing et Gtk::Table#set_col_spacing. Elles permettent de placer des espaces apr蓴 une ligne ou une colonne. Gtk::Table#set_row_spacing(row, spacing) Gtk::Table#set_col_spacing(column, spacing) Notez que pour les colonnes, l'espace est ajoutdroite de la colonne et pour les lignes, il est ajouten dessous. On peut aussi configurer un espacement pour toutes les lignes et/ou colonnes avec: Gtk::Table#set_row_spacings(spacing) Gtk::Table#set_col_spacings(spacing) Notez qu'avec ces appels, la derni蓿e ligne et la derni蓿e colonne n'ont pas d'espace suppl蜊entaire.