Frage

Ich arbeite mit PyGTK und versuche, mit einer Kombination von Widgets zu entwickeln, die die folgenden tun:

  • Lassen Sie mich eine endlose Reihe von Widgets in einer Spalte
  • hinzufügen
  • Geben Sie eine vertikale Bildlaufleiste, um diejenigen zu erhalten, die aus dem Boden läuft
  • Nehmen Sie die Widgets' Breite verfügbar horizontalen Raum füllen einstellen, wenn die Fenstergröße verändert wird

Danke - ich bin neu in GTK

.
War es hilfreich?

Lösung

  • Eine endlose Reihe von Widgets in einer Spalte: Klingt wie ein GtkVBox
  • .
  • Vertikale Bildlaufleiste: Setzen Sie Ihre VBox in einem GtkScrolledWindow
  • .
  • Horizontale Dehnung: Dies erfordert die entsprechenden Eigenschaften für die VBox, ScrolledWindow und Ihre anderen Widgets einstellen. Zumindest in Glade scheinen die Standardwerte meist damit umgehen (Sie werden wahrscheinlich die Scrollbar Politik der ScrolledWindow ändern möchten).

Jetzt für den Trick. Wenn Sie nur das tun, was ich oben aufgeführt haben, wird der Inhalt des VBox versuchen sowohl vertikal als auch horizontal, um die Größe, und Sie werden nicht Ihre Scrollbar erhalten. Die Lösung ist Ihr VBox in einem GtkViewport zu setzen.

So ist die letzte Hierarchie ist ScrolledWindow (Ansichtsfenster (VBox (Widgets))).

Andere Tipps

Was Steve sagte in Code:

vbox = gtk.VBox()
vbox.pack_start(widget1, 1, 1) ## fill and expand
vbox.pack_start(widget2, 1, 1) ## fill and expand
vbox.pack_start(widget3, 1, 1) ## fill and expand
swin = gtk.ScrolledWindow()
swin.add_with_viewport(vbox)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top