PyGtk3 - 创建一个带有图标的Gtk.TreeView列标题?

PyGtk3 - Creating a Gtk.TreeView column header with an icon?

提问人:deko 提问时间:11/9/2019 最后编辑:deko 更新时间:11/9/2019 访问量:390

问:

我有一个Gtk.Treeview的集合。在这个Gtk.ListStore中,我只显示表示存储项名称的str。Gtk.ListStore(int, str)

# Create store and set it to the model
self.__treeview_store = Gtk.ListStore(int, str)  # (Sample_ID, Sample_Name)
self.__w_treeview.set_model(self.__treeview_store)
# Render column name
self.__w_samples_renderer_text = Gtk.CellRendererText()      
self.__w_samples_column = Gtk.TreeViewColumn("Muestras", self.__w_samples_renderer_text, text=1)
self.__w_treeview.append_column(self.__w_samples_column)
# Sort by name
self.__w_samples_column.set_sort_column_id(1)

我不想在我的商店中存储任何 Pixbufs。我正在尝试在列标题旁边添加一个图标,如下图所示:

enter image description here

我已经设法实现了以下目标,但它还没有像我想要的那样工作。我会保持更新。

enter image description here

图标 pygtk gtktreeview

评论


答:

1赞 deko 11/9/2019 #1

enter image description here

我所做的是创建一个水平Gtk.Box,其中包含Gtk.Label和Gtk.Button。我把这个框放在Gtk.TreeView上面。我和格莱德一起做过这件事。你还应该隐藏Gtk.TreeView的列,这样你就只有你的Widget作为列。Gtk.TreeView.set_headers_visible(False)

    # [2] The TreeView column 
    self.__w_treeview.set_headers_visible(False) 
    self.__w_samples_renderer_text = Gtk.CellRendererText()
    self.__w_samples_column = Gtk.TreeViewColumn("", self.__w_samples_renderer_text, text=1)
    self.__w_samples_column.set_sort_column_id(1)   
    self.__w_treeview.append_column(self.__w_samples_column)