如何在延迟后更改应用程序指示器标签
self.ind = appindicator.Indicator("new-gmail-indicator", "/usr/share/icons/ubuntu-mono-dark/status/16/ubuntuone-client-error.svg", appindicator.CATEGORY_APPLICATION_STATUS)
self.ind.set_label("SSH")
time.sleep(4)
self.ind.set_label("HSS")
应用程序运行,但我仅HSS
在运行应用程序时看到标签。我从未看到过SSH
。
答案1
这里的问题是,你有一个单线程应用程序,而睡眠正在阻止它,因此 AppIndicator 库没有机会更新标签。你需要为超时做的是使用GLib 的超时函数设置延迟,并在回调中更改标签。代码可能看起来像这样:
def set_label(self):
self.ind.set_label("SSH")
GLib.timeout_add(4, self.respond_to_timeout)
def respond_to_timeout(self):
self.ind.set_label("HSS")
祝你好运!