2010-08-19 18 views
0

J'ai un widget GTK, dans ce cas, un TreeView. Il commence assez petit et compressé, car il n'y a pas de texte à part les noms des colonnes. Lorsque j'ajoute des choses, il se développe horizontalement pour couvrir le texte et verticalement pour couvrir les rangées supplémentaires. Si je les enlève alors, il conserve sa taille élargie.gtk: expand widget comme si elle avait un texte dans ce

Il est un peu gênant pour votre fenêtre pour être toujours redimensionne que vous ajoutez des choses. Ma question est - comment puis-je "pré-" dimensionner le widget? Comme un moyen serait de le remplir avec du texte indésirable que je pense est la plus grande taille qu'il peut obtenir, puis retirez le texte, mais cela ne sera pas très joli. Y a-t-il un meilleur moyen?

Répondre

1
  1. réponse la plus simple: treeview.set_size_request(width, height) (mais votre arborescence ne se développera pas quand il doit par la suite.)
  2. Est-ce votre point de vue de l'arbre dans une boîte? Avez-vous essayé de l'emballer avec expand=True et fill=True?
  3. window.set_default_size(width, height) sur l'ensemble de votre gtk.Window est la meilleure solution, parce que « pré » tailles de la fenêtre comme vous le dites. Il peut encore grandir, ou être redimensionné plus petit par l'utilisateur.
+0

ah la 3ème option semble comme ce que je veux. Il est emballé avec w/expand et fill défini sur True, car il se développe correctement, mais il commence juste petit. – Claudiu

+0

j'ai essayé la 3ème option, mais même si le widget TreeView se développe, il ne se développe pas de colonnes à l'exception du dernier. Y a-t-il un moyen de les faire pousser de façon plus homogène? – Claudiu

+0

Vous pouvez définir la méthode 'min-width' propriétés de votre gtk.TreeViewColumn'' s à une valeur raisonnable pour qu'ils ne commencent pas à zéro, ou appelez la 'gtk.TreeView.columns_autosize()' à certains moments à autosize les colonnes. – ptomato