Gtk + 3使GtkTreeView水平渲染列

时间:2015-05-28 14:58:22

标签: python gtk gtk3

我在Python程序中使用Gtk + 3我正在努力,我需要"列"在GtkTreeView中以水平方式呈现,而不是现在的垂直方式。

正如您从this GIF所看到的,因为附件名称堆叠起来,它会向上扩展TreeView,而不是我想要的。

我使用Glade设计GUI而我无法找到任何选项,我也无法在Gtk+ 3 Docs中找到任何提及。

这可能,或者我将不得不弄清楚如何破解多列的解决方案?

我希望它最终看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分: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()