2011-01-21 16 views
9

私はhpanedの左側にツリービューを持っていますが、ツリービューのサイズを変更する代わりにバーを自動サイズより小さくするためにバーを左に移動しようとすると、プログラム全体が展開されます右のウィンドウ。どのようにこれを修正するための任意のアイデア?HPaned問題でgtk TreeViewをサイズ変更する

ソースの関連部分は以下の通りである:

hpanedについて。

self.vpan = gtk.VPaned() 
    self.hpan = gtk.HPaned() 
    self.vpan.show() 
    self.hpan.show() 

    self.vBox1.pack_end(self.hpan, True, True, 0) 
    self.hpan.pack2(self.vpan,True, True) 

そしてツリービューの場合。

self.ftree = gtk.TreeStore(str,str,str) 
    self.treefill(None, os.path.abspath(os.path.dirname(__file__))) 

    self.tree = gtk.TreeView(self.ftree) 
    self.tvcolumn = gtk.TreeViewColumn('Project') 
    self.tree.append_column(self.tvcolumn) 
    self.cellpb = gtk.CellRendererPixbuf() 
    self.celltxt = gtk.CellRendererText() 

    self.tvcolumn.pack_start(self.cellpb,False) 
    self.tvcolumn.pack_start(self.celltxt,True) 

    self.tvcolumn.set_attributes(self.cellpb, stock_id=0) 
    self.tvcolumn.set_attributes(self.celltxt, text=1) 
    self.tvcolumn.set_resizable(True) 

    self.hpan.pack1(self.tree,True,True) 
    self.tree.show() 
+0

セパレータを右に移動すると、左ペインのTreeViewが小さくなるのはなぜですか?これは混乱しています... –

+0

その左側に、修正を加えました。 – user381261

+0

このような問題は通常、パッキングパラメータを調整することによって解決されます。恐らく '.pack1(...、False、True)'です。これで問題が解決しない場合は、いくつかのウィジェットで 'set_size_request(0、0)'を呼び出すとよいでしょう。 –

答えて

2

私はこの質問に答えようとしていましたが、私は自分の答えがユーザーの回答の繰り返しであることに気付きました。しかし、答えとして決議を掲載していないので、私はとにかく行っています。

このボックス内のさまざまなオブジェクトの間のスペースのための少しの戦いを引き起こしているように見えます(私はそれを仮定していますPyGTKのドキュメントでは、「Expand」は

と定義されています。子に余分なスペースが割り当てられている場合はTrueです。 。余分な スペースは、この オプションを使用するボックスのすべての子供の間で均等に分割されます。

として「塗りつぶし」:スペースが拡大オプションは、むしろそれをパディングよりも、子供に実際に 割り当てられていることにより、子供に与えられた場合

真。 expandがFalseに設定されている場合、このパラメータには の効果はありません。子供は常に、gtk.HBoxの完全な とgtk.VBoxの全幅に割り当てられます。このオプション は、他のディメンションに影響します。

本質的に、箱はすべて同じ空間を与えています...あなたはもっと多くを与え、それを他の人に与え、オブジェクトはすべてそれを受け取り、大きくなります。ウィンドウを展開して補正する必要があります。

これを修正するには、これらのオプションの一方または両方を「偽」に設定します。 "False"に "Expand"を設定すると、 "Fill"は無効になりますが、 "Fill"を "False"に設定すると、余分なスペースが "Fill-False"オブジェクトに埋め込まれます。

関連する問題