Python GTK命名图标:在开发期间从源代码运行时加载

Python GTK命名图标:在开发期间从源代码运行时加载,python,gtk,icons,Python,Gtk,Icons,我已经用Python编写了一个GTK应用程序(使用PyGObject)。我对如何处理部署感到困惑,特别是图标 我知道在大多数情况下,我能够从特定路径加载我的图像;然而,推荐的方法似乎是将图标注册为系统中的命名图标,这样它们就可以主题化了。在某些情况下,就像Ubuntu的应用程序指示器一样,使用命名图标似乎是唯一受支持的东西 我有所有这些工作;我希望我的应用程序在从源目录运行时能够正常工作,而不需要在系统范围内安装。当然这是可能的吗?我知道这不是你想要的100%,但Gnome也会识别安装在~/.l

我已经用Python编写了一个GTK应用程序(使用PyGObject)。我对如何处理部署感到困惑,特别是图标

我知道在大多数情况下,我能够从特定路径加载我的图像;然而,推荐的方法似乎是将图标注册为系统中的命名图标,这样它们就可以主题化了。在某些情况下,就像Ubuntu的应用程序指示器一样,使用命名图标似乎是唯一受支持的东西


我有所有这些工作;我希望我的应用程序在从源目录运行时能够正常工作,而不需要在系统范围内安装。当然这是可能的吗?

我知道这不是你想要的100%,但Gnome也会识别安装在~/.local/share/icons/上的图标。当程序从源目录运行时,图标可以复制到那里。

如果您要支持从源目录运行,那么您的可执行文件将不得不处理一系列基于路径的问题。修复图标主题查找只是此过程中的另一个步骤

如果您已经按照图标主题规范的要求构造了一个子目录,那么您需要添加到启动器的所有内容是:

icon_path = os.path.abspath('icons')
gtk.IconTheme.append_search_path(icon_path)
其中,
icons
包含符合图标主题规范的目录(即,
hicolor
)或目录