背景研究
我试图更新一个简单的统一发射中的进度条python/Gtk
的应用程序创建使用Quickly
所谓的test
; 但是,按照此视频中的说明,我无法成功更新Unity
启动器中的进度栏。在Unity Integration视频中,Quickly
由于未使用,因此应用程序的结构方式略有不同,如果不修改默认Quickly ubuntu-application
模板应用程序,视频中使用的代码似乎无法正常运行。
屏幕截图
这是当前在Unity Launcher中显示的应用程序图标的屏幕截图。
这是我想要的Unity启动器进度条功能的屏幕截图(覆盖在邮件图标上:wiki.ubuntu.com)。
项目编号
一个.zip
包含项目文件的文件可以发现在这里。
预期行为
我希望上面的代码显示一个进度条,该进度条在Unity Launcher中的测试应用程序的图标上完全覆盖了75%,但是该应用程序仅运行并且在quickly run
执行命令时不显示进度条。
问题调查
我认为问题是我没有正确获得对应用程序主窗口的引用,但是,我不确定如何正确解决此问题。我也相信这行:self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")
可能是另一个复杂性源,因为它Quickly
创建.desktop.in
文件而不是普通.desktop
文件,所以我不确定这是否也可能引起问题。
也许,该问题的另一个来源是我并不完全了解.desktop
和.desktop.in
文件之间的区别。复制test.desktop.in
文件并将其重命名test.desktop
,然后将其放置/usr/share/applications
以便get_for_desktop_id("test,desktop")
引用正确的.desktop
文件可能有意义吗?
相关研究链接
尽管我仍然不清楚.desktop和.desktop.in文件之间的区别,但是我对.desktop文件进行了一些研究,并且遇到了一些链接:
- 桌面条目文件(library.gnome.org)
- 桌面文件安装目录(askubuntu.com)
- Unity Launcher API(wiki.ubuntu.com)
- 桌面文件:将您的应用程序放入桌面菜单(developer.gnome.org)
- 桌面菜单规范(standards.freedesktop.org)
编辑
在运行python setup.py build
然后导航到/build/share/applications
构建的test.desktop
文件并将其移动到~/.local/share/applications
并最终执行后quickly run
,仅显示图标的问号,没有可见的进度条。
编辑2
经过内置的进一步调查.desktop
文件,事实证明,该行:
Icon=/usr/share/test/media/test.svg
内部.desktop
文件指向称为一个图标文件test.svg
并不存在。
为了解决此问题,我使用命令创建了一个名为test
in 的新文件夹,然后在该命令调用的测试文件夹中创建了另一个文件夹,然后将Quickly项目目录中的图标文件移动到。现在,该应用程序的图标可以正确显示在Unity启动器栏和alt-tab视图中,但是仍然没有可见的进度栏,如下面的屏幕快照所示。/usr/share/
sudo mkdir test
media
sudo mkdir media
test.svg
test/data/media/test.svg
/usr/share/test/media/
.svg
编辑3
正如@dobey所指出的那样,该行的TestWindow.py文件的代码中有一个错字:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")
,
test.destkop
应该在哪里test.desktop
。
我更改了此错字,使用来执行应用程序时没有发生明显变化quickly run
。但是,将行添加print('Integrating with launcher')
到之后,在add_launcher_integration()
运行应用程序时终端中没有相应的输出,这表明问题似乎是add_launcher_integration()
在应用程序启动时似乎未正确调用。
编辑4
经过进一步调查,结果发现add_launcher_integration()
实际上是在应用程序启动时调用的。随着行的增加:
os.system("clear")
在行之前
print("Integrating with launcher")
消息“与启动器集成”现在显示在中terminal
。
但是,Unity启动器栏中仍然没有进度条。
编辑5
重建后,Quickly
通过执行项目python setup.py build
和移动内置.desktop
的内文件Quickly
位于项目/build/share/applications/
,以~/.local/share/applications
在Unity启动栏正确,应用程序图标和进度条现在显示。启动器集成的屏幕截图如下所示。