2010-12-14 39 views
2

J'écris une application en python en utilisant getk et j'ai rencontré un problème. J'utilise une hbox pour tenir les boutons qui vont sur ma barre d'outils (nouveau, ouvert, enregistrer, etc) mais la hbox semble être en expansion pour prendre une partie particulière de l'écran et les boutons le font aussi bien les rendant vraiment grand et laid. Comment puis-je les amener à rester à la taille adecent? J'ai déjà essayé de définir les valeurs expand et fill à false et je ne trouve aucune méthode pour contrôler la taille d'un bouton ou d'une hbox. Voici le code pour mon nouveau bouton:Contrôle des tailles de bouton/hbox dans 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

Vous devriez utiliser un 'gtk.Toolbar' pour créer une barre d'outils, pas une hbox. – ptomato

Répondre

2

Vous devez contenir l'ensemble HBox dans un VBox, comme suit:

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

La raison est que GTK permet de redimensionnement de la fenêtre, il ne répartit pas les hauteurs et largeurs fixes. En utilisant une VBox, vous dites à Gtk que je veux que la HBox occupe tout l'espace dont elle a besoin en haut de ma fenêtre.

Espérons que cela aide.

0

widgets enfants assumeront la taille de l'allocation qu'ils widgets parents peuvent donner. Vous devez définir la taille de la hbox ou le bouton. Pour plus d'informations, voir la méthode size_request de PyGTK.

+0

J'ai déjà essayé ça. Je peux le faire plus grand et je peux le réduire horizontalement mais il ne me laissera pas le rétrécir verticalement. – user381261