Ano*_*sta 2 icons python gtk pygtk application-development
我想在我的窗口中添加一个 Gtk 股票图标。这是代码:
#! /usr/bin/python
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title='My Window Title')
self.icon = self.render_icon(Gtk.STOCK_FLOPPY, 1)
self.set_icon(self.icon)
self.connect('delete-event', Gtk.main_quit)
win = MyWindow()
win.show_all()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)
根据此页面图标大小应该是Gtk 图标大小常量之一, 但 Eclipse 代码完成不显示任何列出的值,如果我手动输入其中之一,我会得到
AttributeError: 'gi.repository.Gtk' 对象没有属性 'ICON_SIZE_SMALL_TOOLBAR'
如果我将图标大小设置为文字 1,脚本就可以工作。我确定这与 Gtk 或 PyGtk 版本有关,但我无法弄清楚我做错了什么。在此先感谢并为新手问题感到抱歉。
问题是您正在查看 PyGTK 文档,但在您的脚本中使用了 PyGI/GTK3。
上的文档gtk_widget_render_icon()说明如下:
gtk_widget_render_icon 自 3.0 版起已被弃用,不应在新编写的代码中使用。使用 gtk_widget_render_icon_pixbuf() 代替。
然后文档上gtk_widget_render_icon_pixbuf()说:
gtk_widget_render_icon_pixbuf 自 3.10 版起已弃用,不应在新编写的代码中使用。使用 gtk_icon_theme_load_icon() 代替。
很棒吧?!所以让我们继续。
gtk_icon_theme_load_icon() 采用以下参数:
知道这一点,您可以render_icon使用以下内容更改旧行:
icontheme = Gtk.IconTheme.get_default()
self.icon = icontheme.load_icon(Gtk.STOCK_FLOPPY, 128, 0)
Run Code Online (Sandbox Code Playgroud)
这将查找 128x128 像素的图像。如果需要,您可能想要更改标志,枚举记录在此处。这可以像这样翻译成 Python:
GTK_ICON_LOOKUP_NO_SVG -> Gtk.IconLookupFlags.NO_SVG
GTK_ICON_LOOKUP_FORCE_SVG -> Gtk.IconLookupFlags.FORCE_SVG
GTK_ICON_LOOKUP_USE_BUILTIN -> Gtk.IconLookupFlags.USE_BUILTIN
# And so on...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3808 次 |
| 最近记录: |