gpt4 book ai didi

python - 使用 Gtk+3 ListStore 时不显示图标

转载 作者:行者123 更新时间:2023-12-01 09:33:48 27 4
gpt4 key购买 nike

我已经创建了以下列表存储:

    # creating list view
store = Gtk.ListStore(GdkPixbuf.Pixbuf, str, bool)
self.get_files(store)
treeview = Gtk.TreeView(store)
treeview.connect("button_press_event", self.on_button1_clicked)
horizontal_box.pack_start(treeview, True, True, 0)

cellrenderertext = Gtk.CellRendererText()
cellrendererpixbuf = Gtk.CellRendererPixbuf()

#column 0 of list view to display icons
treeviewcolumn = Gtk.TreeViewColumn("Icon")
treeview.append_column(treeviewcolumn)
treeviewcolumn.pack_start(cellrendererpixbuf, True)
treeviewcolumn.add_attribute(cellrendererpixbuf, "pixbuf", 0)

#column 1 of list view to display names
treeviewcolumn = Gtk.TreeViewColumn("Name")
treeview.append_column(treeviewcolumn)
treeviewcolumn.pack_start(cellrenderertext, True)
treeviewcolumn.add_attribute(cellrenderertext, "text", 1)

#column 2 of list view to display if it is directory
treeviewcolumn = Gtk.TreeViewColumn("Is Dir?")
treeview.append_column(treeviewcolumn)
treeviewcolumn.pack_start(cellrenderertext, True)
treeviewcolumn.add_attribute(cellrenderertext, "text", 2)

我正在使用以下函数来填充商店:

def get_files(self, store):
for file_name in os.listdir(CURRENT_DIRECTORY):

# modified_time = os.path.getmtime(file_name)
if not file_name[0] == '.':
if os.path.isdir(os.path.join(CURRENT_DIRECTORY, file_name)):
store.append([Gtk.Image.new_from_stock(Gtk.STOCK_DIRECTORY, Gtk.IconSize.MENU), file_name, True])
else:
store.append([Gtk.Image.new_from_stock(Gtk.STOCK_FILE, Gtk.IconSize.MENU), file_name, False])

输出正确显示了列表的名称和“是目录”,但不显示图标。我在这里做错了什么?

最佳答案

您正在将图像设置为 pixbuf。相反,我会使用这个(压缩以显示更改):

store = Gtk.ListStore(str, str, bool)

treeviewcolumn.add_attribute(cellrendererpixbuf, "icon-name", 0)

store.append('folder', file_name, True])

文档是 here .

关于python - 使用 Gtk+3 ListStore 时不显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49713614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com