2010-12-14 4 views
2

Ich schreibe eine Anwendung in Python mit getk und ich bin auf ein Problem gestoßen. Ich benutze eine hbox, um die Knöpfe zu halten, die auf meiner Werkzeugleiste laufen (neu, öffnen, speichern, etc), aber die hbox scheint zu expandieren, um einen bestimmten Teil des Bildschirms aufzunehmen und die Knöpfe tun dies auch wirklich groß und hässlich. Wie erreiche ich, dass sie in einer angemessenen Größe bleiben? Ich habe bereits versucht, die Werte für expand und fill auf false zu setzen, und ich kann keine Methoden finden, um die Größe von ether zu steuern, eine Schaltfläche oder eine hbox. Hier ist der Code für meine neue Schaltfläche:Control Button/hbox Größen in GTK

img = gtk.Image() 
img.set_from_stock(gtk.STOCK_NEW,gtk.ICON_SIZE_SMALL_TOOLBAR) 
newButt = gtk.Button() 
newButt.set_image(img) 
newButt.show() 
self.hBox4.pack_start(newButt, False, False, 0) 
+0

Sie sollten eine 'gtk.Toolbar' verwenden, um eine Symbolleiste zu erstellen, keine hbox. – ptomato

Antwort

2

Sie müssen die gesamte HBox in einem VBox enthalten, wie folgt:

main = gtk.VBox(False) 
... 
main.pack_start(self.hbox4, False) 

Der Grund dafür ist, dass gtk für Fenstergröße ermöglicht, so dass es nicht feste Höhen und Breiten zuzuweisen. Indem Sie eine VBox benutzen, sagen Sie Gtk, dass ich möchte, dass die HBox so viel Platz einnimmt, wie sie oben in meinem Fenster benötigt.

Hoffe, dass hilft.

0

Child-Widgets wird die Zuweisung Größe annehmen, dass sie Eltern-Widgets geben kann. Sie sollten die Größe der hbox oder der Schaltfläche festlegen.

Siehe here die size_request Methode von PyGTK, um weitere Informationen zu erhalten.

+0

Ich habe das schon probiert. Ich kann es größer machen und ich kann es horizontal verkleinern, aber es lässt mich nicht vertikal schrumpfen. – user381261