Gtk+ 3 使 GtkTreeView 水平呈现列
Gtk+ 3 make GtkTreeView render columns horizontally
我在我正在处理的 Python 程序中使用 Gtk+ 3,我需要 GtkTreeView 中的 "columns" 以水平方式呈现,而不是现在的垂直方式。
从this GIF可以看出,由于附件名称堆叠,它向上扩展了 TreeView,不是我想要的。
我正在使用 Glade 设计 GUI,我找不到任何选项,也找不到在 Gtk+ 3 Docs.
中提及它的地方
这可能吗,还是我必须弄清楚如何破解具有多列的解决方案?
我希望它最终看起来像这样:
如果你使用 Gtk.FlowBox 和 Gtk.Labels,你可以这样做。但是,可能有比将每个 Gtk.Label 打包成 Gtk.EventBox.
更好的方法
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()
我在我正在处理的 Python 程序中使用 Gtk+ 3,我需要 GtkTreeView 中的 "columns" 以水平方式呈现,而不是现在的垂直方式。
从this GIF可以看出,由于附件名称堆叠,它向上扩展了 TreeView,不是我想要的。
我正在使用 Glade 设计 GUI,我找不到任何选项,也找不到在 Gtk+ 3 Docs.
中提及它的地方这可能吗,还是我必须弄清楚如何破解具有多列的解决方案?
我希望它最终看起来像这样:
如果你使用 Gtk.FlowBox 和 Gtk.Labels,你可以这样做。但是,可能有比将每个 Gtk.Label 打包成 Gtk.EventBox.
更好的方法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()