我一直在学习 Tkinter,因此我拿出一些 Python 程序并使它们在窗口中运行。
偶然的机会,我在Stack Overflow上看到了这种启动Python程序的方式,于是就尝试了一下。
然后我制作了一个图标并输入了这段代码/home/pedro/.local/share/applications/
[Desktop Entry]
Type=Application
Terminal=false
Name=Mark CW and HW
Exec=/home/pedro/myPython/tkinter/answersToExcel2.py
Icon=/home/pedro/icons/icon4.png
StartupWMClass=myTkApp
我以前从未做过这样的事情,但令我惊讶的是,它运行良好!我将图标锁定到启动器。现在我可以随时从启动器启动我的 Tkinter 窗口。
我的问题是:在哪里可以获得有关这种应该、必须或可以是什么的更多信息[Desktop Entry]
?
另外,如果由于某种原因 Python 代码失败(还没有发生,我首先在 Idle 中进行了彻底的测试)会在某处写入错误消息吗?
答案1
启动.desktop
器遵循 freedesktop.org 桌面入口和菜单标准。一些标准键包括:
Name=
应用程序的具体名称。Comment=
应用程序的简短描述。Exec=
启动应用程序的命令。Icon=
应用程序的图标(图标主题提供的图标或图像文件的绝对路径)。Type=
桌面条目类型,支持的有Application
、Link
或Directory
。Terminal=
true
/false
,应用程序是否在终端窗口中运行。Categories=
应用程序所属的类别(主要类别,其他类别和保留类别)。StartupWMClass=
是非常有用。
欲了解详细规格列表,请访问免费桌面网站。
附言可用于创建应用程序启动器的各种 GUI 应用程序,例如'主菜单' (又名alacarte
)或 '自由菜单'( menulibre
),只是在后台的.desktop
适当位置(例如)创建一个文件。~/.local/share/applications/
答案2
问题的另一部分:
为 CLI(以及一些 GUI 程序)设计的程序通常将所有信息和错误消息写入 stdout 和 stderr,这两个程序通常连接到终端/CLI。当您从 GUI 启动此类程序时,这些流通常连接到位存储桶 (/dev/null),所有此类消息都会丢失。
当 GUI 程序出现问题时,一个方便的技巧是从终端运行它。然后,它发出的任何此类消息都会有地方可以去,并可能告诉您为什么事情没有按预期进行。
许多 GUI 程序以这种方式运行时会变得非常杂乱。
在 KDE(可能还有其他程序)中,应用程序菜单编辑器允许您选择在终端中运行条目的选项。这样,当您运行此类条目时,终端窗口就会自动打开。程序完成后,终端窗口会关闭,因此如果您需要查看最终消息,您必须在最后添加一些暂停程序的内容或包装器脚本,以便您可以在消息消失之前阅读它们。