我正在尝试为显示 Tkinter 窗口的自定义 Python 脚本添加启动器图标(脚本位置:)/home/hakon/my-tkapp.py
:
#! /usr/bin/env python3
import tkinter as tk
root = tk.Tk(className='MyTkApp')
label = tk.Label(root, text="Hello World")
label.pack()
root.mainloop()
该脚本是可执行的。我正在使用pyenv
,所以如果我从以下位置运行gnome-terminal
:
$ which python3
/home/hakon/.pyenv/shims/python3
我创建了一个桌面文件(文件位置:)~/.local/share/applications/my-tk-app.desktop
:
[Desktop Entry]
Type=Application
Terminal=false
Name=My Tk Application
Exec=/home/hakon/my-tkapp.py
Icon=/home/hakon/icons/my-tk-app-icon.png
StartupWMClass=MyTkApp
对于图标,我只是(出于测试目的)复制了一个标准图标:
cp /usr/share/icons/hicolor/48/apps/apport.png /home/hakon/icons/my-tk-app-icon.png
在桌面文件上运行desktop-file-validate
命令没有输出,所以桌面文件应该没问题。
但是,当我从终端运行 python 脚本时:
~/my-tkapp.py
我仍然在启动器中看到通用问号图标。
我在这里俯瞰什么?
由于您的问题有很好的记录,我们可以找到问题:)
在您的应用程序中,您设置:
现在如果你打开一个终端,输入:
然后单击您的应用程序的窗口,它显示:
这与您设置的窗口类不同;大写字母不同。唯一的结论是,由于某种原因,您设置的窗口类(大写格式)不被窗口管理器接受。
当我将您的启动器更改为匹配时
myTkApp
:它工作正常(为了方便起见,我设置了 firefox 图标,因为我没有你的图标):
结果: