[ruby-gnome2-doc-cvs] [Hiki] create - tut-gtk2-packing-box-details

Back to archive index

ruby-****@sourc***** ruby-****@sourc*****
2004年 5月 11日 (火) 09:06:12 JST


-------------------------
REMOTE_ADDR = 80.137.218.186
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/de/?tut-gtk2-packing-box-details
-------------------------
= Genaueres $B(Ber Boxen

{{link "tut-gtk2-packing-theory", "tut-gtk2-packing-intro", "tut-gtk", "tut-gtk2-packing-demo"}}

Aufgrund dieser Flexibilit$BgU(B, kann das Anordnen von Boxen mit GTK zuerst etwas verwirrend sein. Es gibt viele verschiedene Optionen und es ist nicht immer sofort offensichtlich, wie sie alle zusammen geh$B(Ben. Letztenendes gibt es aber genau f$B(Bf verschiedene Stile.

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

Jede Zeile enth$BgM(Bt eine horizontale Box (Gtk::HBox) mit verschiedenen Buttons. Der Aufruf von Gtk::Box#pack ist eine Kurzschreibweise, um alle Buttons in der HBox anzuordnen. Jeder Button wird in der HBox auf die gleiche Weise angeordnet (beispielsweise mit den gleichen Argumenten, die an die Methode Gtk::Box#pack_start $B(Bergeben werden).

Die Methode Gtk::Box#pack_start sieht folgenderma$B_e(Bn aus:

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

Das erste Argument ist das Objekt, dass Sie in der Box anordnen. Die Objekte werden in diesem Fall nur Buttons sein, also werden wir nur Buttons in den Boxen anordnen.

Das Argument "expand" der Methoden Gtk::Box#pack_start und Gtk::Box#pack_end kontrolliert, ob die Widgets sich in der Box ausbreiten k$Bvn(Bnen:

:Wenn expand true ist,
 werden die Widgets den gesamten in der Box verf$B|g(Bbaren Platz ausf$B|l(Blen.

:Wenn expand false ist,
 wird die Box zusammenschrumpfen, um nur den f$B|r(B die Widgets ben$Bvt(Bigten Platz einzunehmen.

Indem Sie expand auf false setzen, k$Bvn(Bnen Sie Ihre Widgets links und rechts ausrichten. Andererseits werden sie alle expandiert, um die Box auszuf$B|l(Blen. Der gleiche Effekt kann durch die einzelne Verwendung von Gtk::Box#pack_start oder Gtk::Box#pack_end erzielt werden.

Das Argument "fill" kontrolliert, wo der Platz, der dem Objekt $B|b(Ber expand gegeben wurde, beansprucht wird:

:Wenn fill true ist,
 wird das Objekt erweitert, um den zugeordneten Platz auszuf$B|l(Blen.
:Wenn fill false ist,
 wird das Objekt in seiner urspr$B|n(Bglichen Gr$Bv_(Be belassen und mit zus$Bdt(Bzlichem, freiem Platz umgeben.

Beachten Sie, dass das Argument "fill" nur einen Effekt hat, wenn das Argument "expand" ebenfalls auf true gesetzt wurde.

Wenn Sie eine neue horizontale Box erstellen, sieht der Code dazu folgenderma$B_e(Bn aus:

  Gtk::HBox.new(homogeneous, spacing) 

Das Argument "homogeneous" der Methode Gtk::HBox.new (das gilt auch f$B|r(B Gtk::VBox.new) kontrollliert, ob jedes Objekt innerhalb der Box die gleiche Gr$Bv_(Be zugeordnet bekommt - beispielsweise die gleiche Breite in einer horizontalen Box oder die gleiche H$Bvh(Be in einer vertikalen Box). Wenn das Argument gesetzt wurde, funktionieren die Methoden Gtk::Box#pack_start und Gtk::Box#pack_end so, als w$Bdr(Be bei ihrem Aufruf das Argument "expand" auf true gesetzt worden.

Was ist der Unterschied zwischen Spacing (wird gesetzt, wenn die Box erstellt wird) und Padding (wird gesetzt, wenn die Elemente eingef$B|g(Bt werden)?
Spacing wird zwischen Objekten eingef$B|g(Bt und Padding wird an einer der Seiten des Objektes eingef$B|g(Bt. Der folgende Screenshot sollte das verdeutlichen:

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

Im folgenden Abschnitt finden Sie den Code, der zur Erstellung des auf dem Screenshot sichtbaren Programmes verwendet wurde. Er ist ausf$B|h(Brlich kommentiert, also d$B|r(Bften Sie hoffentlich keine Probleme haben, ihn zu verstehen. Probieren Sie es einfach aus und ver$Bdn(Bdern Sie einige Dinge.





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