gpt4 book ai didi

python - 在 GTK3 中显示股票图标的非弃用方式是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:49:21 24 4
gpt4 key购买 nike

我正在使用 PyGObject 组装一个 GUI。此 Python 代码在上下文中工作。我得到一个带有常用“打开”图标的工具栏按钮。

from gi.repository import Gtk

# ...

toolbar = Gtk.Toolbar()
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

# ...

self.fileOpen = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)

Image shows icon appearing on the toolbar.

但根据this resource , new_from_stock() 已弃用:

Deprecated since version 3.10: Use Gtk.ToolButton.new () together with Gtk.Image.new_from_icon_name () instead.

那好吧。所以在进一步挖掘之后,这就是我想出的替代品:

self.fileOpen = Gtk.ToolButton(
Gtk.Image.new_from_icon_name("document-open",
Gtk.IconSize.LARGE_TOOLBAR),
"Open")
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)

但这是结果:

Image shows icon not appearing on the toolbar.

当前 GTK 库仍然支持的正确方法是什么?

最佳答案

看着这个C++ GitHub example ,我惊讶地发现直接调用静态 new() 函数而不是构造函数。

所以我决定试一试。仔细看看区别。这是微妙的。

                              #vvv
self.fileOpen = Gtk.ToolButton.new(
Gtk.Image.new_from_icon_name("document-open",
Gtk.IconSize.LARGE_TOOLBAR),
"Open")
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)

令我惊讶的是,这显示了其他方法不显示的图标。

奖励: 上面的清洁版本:

# iconSize to be reused
iconSize = Gtk.IconSize.LARGE_TOOLBAR

# ...

openIcon = Gtk.Image.new_from_icon_name("document-open", iconSize)
self.fileOpen = Gtk.ToolButton.new(openIcon, "Open")
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)

关于python - 在 GTK3 中显示股票图标的非弃用方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859488/

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