问题标签 [appindicator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
80 浏览

python - Python:用 GtkBox 和 2 个标签打包 GtkMenuItem

我正在使用 Gtk.Builder() 来构建 AppIndicator 的菜单。目标是让 MenuItem 里面有两个标签(一个在左边,一个在右边),但由于某种原因,第二个标签被忽略,只有第​​一个标签被正确呈现。我很确定它是可能的,因为 Gnome 文档是这样说的,并且 Ubuntu 上的 DateTime 小部件中包含相同类型的 MenuItem。

我错过了什么吗?

0 投票
1 回答
279 浏览

python - Python:将url添加到appindicator中的菜单

我正在尝试使用 appindicator 和 Gtk 制作一个小应用程序。我的目标是显示一个服务器列表,其中包含指向它们的 url 的链接。

这是我尝试的:

这是有效的,我没有错误。但是当我启动应用程序时,我只有菜单,有项目但没有链接。

我见过很多 gtk.Window 的例子,但没有一个 appindicator 的菜单。

有没有办法在这个菜单中有链接?

谢谢

0 投票
0 回答
119 浏览

python - python中的AppIndicator3在os.fork()之后需要很长时间才能出现

我正在编写一个在 python 中有一个 appindicator 的应用程序。它工作得很好,但现在我想分叉执行,以便应用程序“在托盘中”启动并释放控制台。问题是应用程序被分叉后,指示器显示应用程序大约需要 10 到 15 秒。这是一些重现问题的简约示例代码:

如果我删除“run_in_background()”,指示器会立即显示,但如果我引入它,大约需要 10 到 15 秒才能显示。

有没有办法解决这个问题?为什么分叉后指标显示需要这么长时间?

0 投票
2 回答
617 浏览

c - C 和 libappindicator - 创建多个指标

我正在编写一个简单的指示器,它应该在 Unity 面板中为每个 CPU 内核显示一个图标,它会根据温度范围改变颜色。

这将要求我在同一个程序上拥有多个 AppIndicator,因为我认为没有办法让一个 AppIndicator 具有多个图标,或者使用 gtk_container 来保存这些图标并将其附加到 AppIndicator。我实际上是在尝试为菜单使用 1 个 AppIndicator(带有“退出”选项),为每个 CPU 内核使用 1 个 AppIndicator。

该程序只有一个 AppIndicator(主要的)没有 Gtk 警告,但是在我添加了为每个 CPU 核心(都具有不同的唯一 ID)创建其他 2 个 AppIndicator 的代码之后,Gtk 开始抛出一些警告和关键消息。指标按应有的方式显示在面板中,但我不想简单地忽略这些消息,因为它们可能隐藏了一些真正的问题。

检查代码,我认为唯一可能触发这些警告和关键消息的app_indicator_new()事情被多次调用,我实际上删除了所有菜单和 menu_item 为这些额外指标创建例程,只留下app_indicator_new()调用,我仍然收到这些消息(第一个之后的每个额外app_indicator_new()呼叫一个):

当我添加带有正在创建的菜单并与额外的 AppIndicator 相关联的代码时,会出现一些额外的错误:

如有必要,我可以发布程序的代码,只是没有这样做,因为它会使问题变得更大。这就是我创建额外 AppIndicators 的块:

任何线索可能是什么原因?不支持每个程序的多个 AppIndicator吗?

编辑:

在@Jean-François Fabre 回答后更正了代码。

编辑2:

用于显式创建单个核心指标的代码。仍然抛出警告和关键信息:

0 投票
1 回答
784 浏览

gtk - 即使没有导入错误,gobject 名称错误

所以,我正在制作一个 pygtk appindicator 并需要定期调用某个函数。gobject.timeout_add(millisec,function) 是解决此问题的一种方法。

我以这种方式导入了所有 gi 模块:

并且没有任何导入错误。然后,在我的主要功能中,我调用:

这是实际的代码片段:

并得到以下错误:

即使我用 GObject 替换 gobject 我也会得到同样的错误。

所以,请帮我解决同样的问题。先感谢您!!

0 投票
0 回答
450 浏览

python-3.x - GObject.timeout_add 意外停止运行

我正在开发一个 Ubuntu Appindicator,它每 X 秒显示一次 JSON API 调用的值。

问题是,它会随机停止调用self.loop而不会出现任何错误或警告。我可以让它运行几天或几个小时。我已经设置(开发中)调试语句,并且在loop调用函数后它总是停止运行。

就好像我是False从函数返回还是不返回,尽管这段代码中的逻辑应该总是 return True

这是(适用于 GTK2 但原则不变)的文档。GObject.timeout_add

我不确定它是否依赖于 PyGTK 版本。我在 Ubuntu 16.04 和 Ubuntu 17.04 中遇到过这种情况。

这是完整的课程。调用 JSON API 的位置在result = self.currency.query(). 我很乐意提供进一步的反馈。

0 投票
1 回答
207 浏览

python - 使用 Python 在 Gtk 中将其他 CheckMenuItems 的活动状态设置为 False

我已经为 Ubuntu 编写了一个应用程序指示器(基本上是 wifi 和电池图标旁边的一个图标)来设置关闭盖子的动作。它工作得很好,但我想添加一个复选标记 ✓ 以查看哪个状态处于活动状态。这可以使用 CheckMenuItems 而不是 Gtk 中的 MenuItems 来完成。问题是,就我而言,CheckMenuItems 的活动状态是互斥的。即,当一个处于活动状态时,另一个不处于活动状态。我列出了代码中最相关的部分。

问题是当我使用 appIndicator 并调用这两种方法之一时,一切都很好并且表现良好;但是当我选择另一种方法时,它们将永远在它们之间交替循环。有谁知道我做错了什么?

另外,这是查找菜单的 menuItems 的正确方法吗?我很难相信没有这样的方法可以替代我使用的 for 循环。

0 投票
1 回答
196 浏览

python - Python/Gtk 启动多个 AppIndicator 实例

免责声明:我对 Python 和 Ubuntu 还很陌生。完整代码在https://github.com/bluppfisk/coinprice-indicator/tree/multipletickers

我正在调整一个加密货币价格代码,它使用 libappindicator 显示在 Ubuntu 的任务栏中,以便能够运行自身的多个实例。

但是,系统似乎无法区分各种通知项,并试图覆盖它们而不是添加另一个。错误:

libappindicator-WARNING **:无法在路径“/org/ayatana/NotificationItem/Coin_Price_indicator”上注册对象:已在 /org/ayatana/NotificationItem/Coin_Price_indicator 为接口 org.kde.StatusNotifierItem 导出对象

我认为创建指示器类的新实例(启动 NotificationItem)应该自动执行此操作。另外,我对它们进行了多线程处理,并在启动线程后启动了主 Gtk 线程:

指标.py

0 投票
1 回答
389 浏览

python - Ubuntu 16.04 上的指示器损坏

我用 gi.repository 在 python 中为 Ubuntu 编写了一个简单的指标小程序,我已经在我的 Ubuntu 14.04 上成功运行了很长时间,没有任何问题。更新到 Ubuntu 16.04 后,我开始看到一些奇怪的行为。我再次在 Ubuntu 14.04 上尝试了它以确保它工作正常,但在 Ubuntu 16.04 上,我的菜单事件没有被触发,并且当我尝试更改图标时应用程序有时没有响应。

一些适用于 Ubuntu 14.04 但不适用于 Ubuntu 16.04 的基本代码指示器

所以我的问题是 Ubuntu 14.04 和 16.04 之间发生了什么变化,我怎样才能创建一个可靠的指标小程序,在两个系统上都能顺利运行?

我注意到一件事,在 Ubuntu 14 上我有 gi.repository 版本 3.12.0,但在 Ubuntu 16 上它是 3.20.0,但不确定这是否重要。

0 投票
1 回答
357 浏览

python - 点击后如何保持 PyGTK AppIndicator 菜单打开?

我试图玩弄这个pygtk模块,在 Ubuntu 17.10 的顶部栏中制作一个应用程序指示器。

通过一些研究,我成功地制作了一个菜单,您可以在其中暂停主线程(当前仅将“更新”打印到控制台。)

现在我偶然发现了一个问题,找不到答案。

我计划为顶部栏制作一个无线电流媒体,每次点击时关闭的菜单对于搜索时的导航来说是非常不受欢迎的。

单击项目时如何使菜单保持打开状态?

这是我的代码: