我使用Tkinter编写了一个Python脚本来显示一个(单个)窗口(脚本工作正常)。现在,我编写了一个.desktop文件,以便能够从Ubuntu(16.04)破折号启动脚本:
[Desktop Entry]
Name=UNIX Time Converter
Exec=/home/tiuri/.local/share/applications/UnixTimeConverter.py
Type=Application
Terminal=False
Icon=/home/tiuri/.local/share/applications/unixtimeconverter.png
但这只是部分工作:我在短划线中有一个应用程序,其中包含正确的图标和正确的名称。单击它时,启动器中会出现两个图标:应用程序图标(在.desktop中显示)闪烁十秒然后消失,而第二个图标连接到Tkinter窗口并在窗口打开时保持不变。但是,我想只有一个启动器图标,图像在.desktop文件中定义并连接到Tkinter窗口。
Python脚本重现行为的最小示例是:
#!/usr/bin/env python
from Tkinter import Tk, Label
def main():
master = Tk()
Label(master, text='Minimal example').pack()
master.mainloop()
if __name__ == '__main__':
main()
我想Ubuntu不会将Tkinter窗口识别为刚刚执行的命令的实例,但我不知道这是Python还是Ubuntu问题。在这里和Google上搜索并没有产生解决方案,但也许你有一个想法?提前谢谢!
答案 0 :(得分:1)
您可以在StartupWMClass
文件中添加.desktop
属性,该属性会从应用程序中识别出来
运行以下命令并单击应用程序,它将输出窗口类
xprop | grep WM_CLASS | awk '{print $4}'
并把它像
StartupWMClass=<output of above command>
在您的.desktop
文件中