2015-05-28 66 views
0

我在我正在使用的Python程序中使用Gtk + 3,我需要GtkTreeView中的「列」以水平方式呈現,而不是現在的垂直方式。Gtk + 3使GtkTreeView水平渲染列

正如你可以從this GIF看到的那樣,因爲附件名稱堆疊起來,它向上展開TreeView,而不是我想要的。

我正在使用Glade設計GUI,我找不到任何選項,我也不能在​​中找到任何提及。

這是可能的,還是我將不得不弄清楚如何破解多列的解決方案?

我希望它結束​​了看起來像這樣:

enter image description here

+0

什麼特定版本的GTK +是您的最低要求? – andlabs

+0

另外可以肯定的是,你的意思是說你需要一個像[this one]一樣的工作列表(https://i-msdn.sec.s-msft.com/dynimg/IC725349.png)? – andlabs

+0

@andlabs最小值是Gtk 3.0。至於我想要的樣子,我希望它是這樣的:http://i.imgur.com/1BrcaFY.png。應該在問題中添加一個示例。 –

回答

1

如果您使用Gtk.Labels一個Gtk.FlowBox,你可以像下面這樣做。但是,在Gtk.EventBox中打包每個Gtk.Label可能有更好的方法。

from gi.repository import Gtk, Gdk 
import string 


class Window(Gtk.Window): 
    def __init__(self): 
     super().__init__() 
     self.connect('delete-event', Gtk.main_quit) 
     self.set_size_request(200, 150) 
     flowbox = Gtk.FlowBox() 
     self.add(flowbox) 

     for x in string.ascii_lowercase: 
      eventbox = Gtk.EventBox() 
      eventbox.add(Gtk.Label(label=x)) 
      flowbox.add(eventbox) 
      eventbox.connect('button-press-event', self.on_button_press) 

    def on_button_press(self, widget, event): 
     if event.button == 3: 
      print('Right click on: ' + widget.get_child().get_text()) 


win = Window() 
win.show_all() 
Gtk.main() 
+0

@RPiAwesomeness要知道GtkFlowBox是在GTK + 3.12中引入的,所以如果你確實這樣做了,那麼你的最小GTK +版本將變成3.12。 (我也在考慮GtkFlowBox,但版本要求是我問的原因。) – andlabs

+0

@andlabs這很好。我可以使用我已經使用的Glade GUI進行設置。 –