2011-01-21 29 views
9

Bir hpanedin sol tarafında ağaç görünümü var, ancak ağaç görünümünü yeniden boyutlandırmak yerine, ağacı görüntünün otomatik boyutundan daha küçük yapmak için çubuğu sola kaydırmaya çalıştığımda tüm programı genişletir sağdaki pencere. Bunu nasıl düzelteceğinizle ilgili bir fikrin var mı? hpaned içinHPaned sorununda gt ağaç görünümünde yeniden boyutlandırma

:

kaynağının ilgili kısımları şunlardır. Ağaç görünümü için .

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

Ayırıcı neden sağa doğru hareket ettirmeli, sol bölmede bir Ağaç Görünümü daha küçük olmalıdır? Bu kafa karıştırıcı ... –

+0

Solda, düzeltmeyi yaptı. – user381261

+0

Bu gibi sorunlar genellikle paketleme parametrelerini ayarlayarak çözülebilir, belki '.pack1 (..., Yanlış, Doğru)'. Bu yardımcı olmazsa, bazı widget'larda 'set_size_request (0, 0)' demeyi deneyin. –

cevap

2

Bu soruya cevap verecektim ve sonra cevabımın cevabın kullanıcının cevabının tekrarı olduğunu anladım. Ancak, kararını bir cevap olarak göndermediği için, yine de yapacağım. (Eğer bunu çözmemiş olsaydı ne yazabilirdim?)

Genişlet ve Doldur, bu kutudaki çeşitli nesneler arasındaki boşluk için biraz kavgaya neden oluyor gibi görünüyor. senin tüm nesneleri bu. Ben de alışkanlığı var için kullanılan, ancak çocuk kutu tahsis ekstra alan verilecek ise sorun yok.) PyGTK dokümantasyon, "Expand" In olarak

Doğru tanımlanır . Ek alanı, bu seçeneğini kullanan tüm kutuların çocukları arasında eşit olarak bölünecektir.

gibi "Fill": genişletmek seçeneği ile çocuğa verilen uzay aslında çocuğa ayrılan olup

ise doğru değil sadece doldurma yerine,. Genişletme, False olarak ayarlanmışsa, bu parametre etkisine sahip değildir. Bir çocuk her zaman bir gtk.HBox ve bir gtk.VBox tam genişliği yüksekliği tahsis edilir. Bu seçenek diğer boyutu etkiler.

Yani, aslında, kutu herşeyi aynı alana veriyor ... bir tanesine daha fazlasını veriyorsunuz, diğerine veriyor ve nesneler onu alıp büyüyor. Pencere daha sonra telafi etmek için genişletmek zorunda.

Bunu düzeltmek için, bu seçeneklerden birini veya her ikisini de "False" olarak ayarlayın. "Genişlet" i "Yanlış" olarak ayarlamak, "Doldur" u da kapatacaktır, ancak yalnızca "Doldur" seçeneğini "Yanlış" olarak ayarlamak, kutunun dolgu yerine "Doldurma - Yanlış" nesnelere fazladan boşluk bırakmasına neden olur.

İlgili konular