ruby-****@sourc*****
ruby-****@sourc*****
2004年 5月 13日 (木) 13:54:48 JST
------------------------- REMOTE_ADDR = 80.137.239.220 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/de/?tut-gtk2-packing-tables ------------------------- = Anordnen mit Hilfe von Tabellen {{link "tut-gtk2-packing-demo", "tut-gtk2-packing-intro", "tut-gtk", "tut-gtk2-packing-tables-demo"}} Lassen Sie uns einen Blick auf eine weitere M$B(Blichkeit zur Anordnung von Widgets werfen: Tabellen. Tabellen k$B(Bnen in bestimmten Situationen sehr n$B(Bzlich sein. Indem wir Tabellen benutzen, erzeugen wir ein Gitter, in welches wir unsere Widgets einf$B(Ben k$B(Bnen. Die Widgets k$B(Bnen innerhalb des Gitters so viele Zwischenr$BgV(Bme ausf$B(Blen, wie wir bestimmen. Das erste, worauf wir achten m$B(Bsen ist nat$B(Blich der Konstruktor Gtk::Table.new: Gtk::Table.new(rows, columns, homogeneous) Das erste Argument ist die Anzahl der Zeilen, die in der Tabelle vorhanden sein sollen, w$BgI(Brend das zweite die Anzahl der Spalten festlegt. Das Argument "homogeneous" hat damit zu tun, wie die Tabellenfelder in ihrer Gr$B(Be angepasst werden. Wenn homogeneous auf true gesetzt wurde, werden die Tabellenfeld entsprechend dem gr$B(Bten Widget in der gesamten Tabelle vergr$B(Bert. Wenn homogeneous auf false gesetzt wurde, wird die Gr$B(Be der Felder von dem gr$B(Bten Widget in der gleichen Zeile und der gleichen Spalte vorgeschrieben. Die Zeilen und Spalten werden von 0 bis n aufgeteilt, wobei n die Zahl ist, die in dem Konstruktor Gtk::Table.new angegeben wurde. Wenn Sie also dem Parameter rows einen Wert von beispielsweise 2 geben und columns ebenfalls auf 2 setzen, w$B(Bde das Layout etwa folgenderma$B_e(Bn aussehen: .0 1 2 0+----------+----------+ | | | 1+----------+----------+ | | | 2+----------+----------+ Beachten Sie, dass das Koordinatensystem in der oberen linken Ecke seinen Ursprung hat. Um ein Widget in einem der Felder zu platzieren, k$Bvn(Bnen Sie die folgende Methode benutzen: Gtk::Table#attach(child, left_attach, right_attach, top_attach, bottom_attach, xoptions, yoptions, xpadding, ypadding) Das erste Argument ("child") ist das Widget, dass Sie in die Tabelle einf$B|g(Ben m$Bvc(Bhten. Die Argumente "left_attach" und "right_attach" legen fest, wo das Widget platziert wird und wie viele Felder es ausf$B|l(Blen soll. Wenn Sie einen Button in der unteren rechten Zelle unserer 2x2-Tabelle einf$B|g(Ben m$Bvc(Bhten, der nur dieses eine Feld ausf$B|l(Blen soll, w$Bdr(Ben die Werte f$B|r(B left_attach 1, f$B|r(B right_attach 2, f$B|r(B top_attach 1 und f$B|r(B bottom_attach 2. Wenn Sie jetzt ein Widget m$Bvc(Bhten, dass eine ganze Zeile unserer 2x2-Tabelle ausf$B|l(Blt, w$B|r(Bden Sie left_attach mit 0 belegen, right_attach mit 2, top_attach mit 0 und bottom_attach mit 1. Die Argumente "xoptions" und "yoptions" werden benutzt, um Optionen zur Anordnung festzulegen und k$Bvn(Bnen bitweise (mit booleschen OR-Operationen) verkn$B|p(Bft werden, um mehrere Optionen zu erlauben. (Beachten Sie, dass in Ruby der OR-Operator mit dem (Pipe-)Zeichen | dargestellt wird.) Diese Optionen k$Bvn(Bnen folgende sein: :Gtk::FILL Wenn das Tabellenfeld gr$Bv_(Ber als das Widget ist, dann wird das Widget sich ausdehnen, um den verf$B|g(Bbaren Platz auszuf$B|l(Blen. :Gtk::SHRINK Wenn dem Tabellen-Widget weniger Platz zugeordnet wurde, als es ben$Bvt(Bigt ($B|b(Blicherweise bei einer $BDn(Bderung der Fenstergr$Bv_(Be durch den Benutzer), dann w$B|r(Bden die Widgets normalerweise einfach nach unten aus dem Fenster geschoben und aus dem sichtbaren Bereich verschwinden. Wenn Gtk::SHRINK festgelegt wurde, werden die Widgets innerhalb der Tabelle auf die minimal erforderliche Gr$Bv_(Be schrumpfen. :Gtk::EXPAND Diese Option f$B|h(Brt dazu, dass die Tabelle sich ausdehnt, um den verf$B|g(Bbaren Platz des Fensters auszuf$B|l(Blen.