Gtk3 appIndicator - 无需用户输入即可更新图标/文本

时间:2013-07-25 17:17:29

标签: pygtk appindicator

所以我有一个Python脚本,每x分钟将文件同步到我的NAS。我正在尝试编写一个应用程序指示器(ubuntu)来跟踪上述脚本的过程。

如果我将指标代码嵌入到脚本中并使用GLib.timeout_add(10,handler_timeout),则在完成同步之前无法更新指标 - 即参见下面的布局:

*

setupIndicator()
sync():
    update app indicastor to say currently syncing
    sync to nas - takes say 5mins
    update app indicator - sync comlplete
GLib.timeout_add(30minutes, self.sync)
Gtk.main()

*

这是我想要做的,但当然不会像这样。我的麻烦是我不知道从哪里开始 - 我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

我认为你需要将NAS功能放入一个线程中,并在每次更新时启动该线程。

线程执行的第一件/最后一件事是将指示器更新为忙/闲。

我为Ubuntu编写了一个名为indicator-ppa-download-statistics的appindicator(Python 3,GTK + 3),找到了here,它实现了与我想要的(我理解)类似的概念。我不确定你是否需要使用我在我的实例中使用的锁定机制或全局标志,但至少一个线程方法将允许NAS内容发生在背景而不阻止用户使用指标。