1

我有一个 python (pygtk) 应用程序,它根据参数以不同的模式启动。对于每种应用程序模式,我都有一个 bash 脚本:

kadro-reader.sh:

#!/bin/sh
/usr/bin/kadro reader

kadro-gmail.sh:

#!/bin/sh
/usr/bin/kadro gmail

对于每种模式,我还有一个 .desktop 启动器:

[Desktop Entry]
Name=Kadro Google Reader
Icon=kadro-reader
Exec=kadro-reader.sh
Categories=Network;
Type=Application

每个 .desktop 启动器都定义了一个不同的图标。但 Unity 始终为所有应用程序模式显示相同的图标。

Kupfer 的类似问题:在我启动了一种模式后,Kupfer 认为所有其他模式也在运行。

它接缝 Unity(BAMF 应用程序匹配框架),并且 Kupfer 无法将正在运行的进程与正确的 .desktop 启动器相关联。

有没有正确的方法可以让debian清楚我的python进程想要使用哪个图标?

4

2 回答 2

1

(将我的回复粘贴在 askubuntu.com 上)

我认为问题可能不在于桌面文件本身,而在于以下任何一项:

  • .ui文件:如果您使用的是用户界面文件,您可能已经设置icon_name了主窗口的属性。在这种情况下,我会说.desktop文件中的图标没有被使用。

  • pygtk代码:与文件案例类似,您可能已经使用或类似.ui设置了主窗口的图标。gtk.Window.set_icon_namegtk.Window.set_default_icon_name

gtk.Window.set_icon_name我的建议是在应用程序启动时使用或gtk.Window.set_default_icon_name根据传递给应用程序的参数以编程方式设置主窗口的图标。

于 2011-12-21T12:19:24.843 回答
0

我已经解决了如下问题:

我已将我的通用 Kadro 应用程序安装为 python 库。对于每种模式,我都创建了自己的 python 脚本,它只调用具有正确参数的通用 Kadro 库。

现在 Unity 和 Kupfer 显示正确的图标。

于 2012-03-29T10:39:38.180 回答