统一 – 如何使启动器进度条与我的应用程序一起使用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了统一 – 如何使启动器进度条与我的应用程序一起使用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4026字,纯文字阅读大概需要6分钟。
内容图文
![统一 – 如何使启动器进度条与我的应用程序一起使用?](/upload/InfoBanner/zyjiaocheng/739/046607d31e0b495392ff221c1c59d76a.jpg)
背景研究
我正在尝试更新Unity启动器中的进度条,以便使用Quickly调用test创建一个简单的python / Gtk应用程序;但是,按照this video中的说明,我无法成功更新Unity启动器中的进度条.
在Unity Integration视频中,没有使用Quickly,因此应用程序的结构方式略有不同,如果没有在默认的Quickly ubuntu应用程序模板应用程序中进行修改,视频中使用的代码似乎无法正常运行.
截图
以下是Unity Launcher中当前显示的应用程序图标的屏幕截图.
以下是我想要的Unity启动器进度条功能的屏幕截图(覆盖在邮件图标:wiki.ubuntu.com).
项目代码
可以在here找到包含项目文件的.zip文件.
预期的行为
我希望上面的代码能够在Unity Launcher中显示一个75%完全覆盖在测试应用程序图标上的进度条,但是只有在执行快速运行命令时,应用程序才会运行并且不显示任何进度条.
问题调查
我认为问题是我没有正确获取对应用程序主窗口的引用,但是,我不确定如何正确解决此问题.我也相信行: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.in文件之间的区别,我已经对.desktop文件做了一些研究,我遇到了几个链接:
> Desktop Entry Files (library.gnome.org)
> Desktop File Installation Directory (askubuntu.com)
> Unity Launcher API (wiki.ubuntu.com)
> Desktop Files: putting your application in the desktop menus (developer.gnome.org)
> Desktop Menu Specification (standards.freedesktop.org)
编辑
运行python setup.py构建然后导航到/ build / share / applications并将构建的test.desktop文件移动到?/ .local / share / applications,最后执行快速运行后,只有一个图标的问号正在进行显示,没有可见的进度条.
编辑2
在对已构建的.desktop文件进行进一步调查后,结果显示该行:
.desktop文件中的Icon = /usr/share / test / media / test.svg指向一个名为test.svg的图标文件,该文件不存在.
为了解决这个问题,我使用命令sudo mkdir test在/usr/share /中创建了一个名为test的新文件夹,然后使用命令sudo mkdir media在test文件夹中创建了另一个名为media的文件夹,然后我移动了test.svg图标文件位于我的Quickly项目目录test / data / media / test.svg到/usr/share / test / media /.应用程序的.svg图标现在可以在Unity启动栏和alt-tab视图中正确显示,但是仍然没有可见的进度条,如下面的屏幕截图所示.
编辑3
正如@dobey所指出的那样,在该行的TestWindow.py文件的代码中有一个拼写错误:
self.launcher = Unity.LauncherEntry.get_for_desktop_id(“test.destkop”),
test.destkop应该是test.desktop.
我改变了这个错字,并且在使用快速运行执行应用程序时没有发生任何可见的更改.但是,在将行打印(“与发射器集成”)添加到add_launcher_integration()之后,在运行应用程序时终端中没有相应的输出,这表明问题似乎是似乎没有正确调用add_launcher_integration()当应用程序启动时.
编辑4
经过进一步调查后,事实证明add_launcher_integration()实际上是在应用程序启动时调用的.随着线的增加:
os.system("clear")
在线之前
print("Integrating with launcher")
现在,终端显示消息“与发射器集成”.
但是,Unity启动栏中仍然没有可见的进度条.
编辑5
通过执行python setup.py构建重建Quickly项目并将位于/ build / share / applications /的Quickly项目中的内置.desktop文件移动到?/ .local / share / applications,现在应用程序图标和进度条在Unity启动栏中正确显示.启动器集成的屏幕截图如下所示.
解决方法:
.desktop文件必须安装在bamf库知道它的位置.
您应该能够通过将构建的.desktop文件(应该从.desktop.in创建)复制到?/ .local / share / applications文件夹中,并运行update-desktop-database~ / .local /来进行测试.共享/应用程序,但如果您的应用程序不处理任何MIME类型,则可能不需要运行此命令.
.desktop和.desktop.in之间的区别在于.desktop.in被设置为被翻译,并在构建期间由intltool处理,以插入翻译,从.desktop.in创建.desktop文件.文件.
我还注意到你的代码中有一个拼写错误:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")
请注意它应该是“destkop”与“桌面”.也许这就是它,如果它不是重新输入错误.假设您的代码实际上正在运行,这是一个问题.如果它没有运行,那就是问题所在.您可以在add_launcher_integration函数中添加打印(“与发射器集成”)以查看.它应该在运行时出现在终端上.
内容总结
以上是互联网集市为您收集整理的统一 – 如何使启动器进度条与我的应用程序一起使用?全部内容,希望文章能够帮你解决统一 – 如何使启动器进度条与我的应用程序一起使用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。