我有一个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进程想要使用哪个图标?(粘贴我的回复在askubuntu.com)
我认为问题可能不是在桌面文件本身,而是在以下任何一个:
-
.ui
文件:如果您使用的是用户界面文件,您可能已经为主窗口设置了icon_name
属性。在这种情况下,我会说.desktop
文件中的图标没有被使用。 -
pygtk
代码:类似于.ui
文件的情况下,你可能已经设置了图标的主窗口使用gtk.Window.set_icon_name
,gtk.Window.set_default_icon_name
或类似的
我的建议是在应用程序启动时使用gtk.Window.set_icon_name
或gtk.Window.set_default_icon_name
根据传递给应用程序的参数以编程方式设置主窗口的图标。
我已按如下方法解决了这个问题:
我已经将我的通用Kadro应用程序安装为python库。对于每种模式,我都创建了自己的python脚本,该脚本只使用正确的参数调用通用的Kadro库。
现在Unity和Kupfer显示正确的图标