如何在Debian / Ubuntu中为我的python应用程序定义一个图标?

时间:2011-12-21 10:37:18

标签: python icons desktop-application process ubuntu-unity

我有一个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进程想要使用哪个图标?

2 个答案:

答案 0 :(得分:1)

(在askubuntu.com中粘贴my response

我认为问题可能不在桌面文件中,而是在以下任何一种情况下:

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

  • pygtk代码:与.ui文件情况类似,您可能使用gtk.Window.set_icon_namegtk.Window.set_default_icon_name或类似内容设置了主窗口的图标。< / p>

我的建议是,在使用gtk.Window.set_icon_namegtk.Window.set_default_icon_name启动应用程序时,以编程方式设置主窗口的图标,具体取决于传递给应用程序的参数。

答案 1 :(得分:0)

我已经解决了以下问题:

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

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