我用 gi.repository 在 python 中为 Ubuntu 编写了一个简单的指标小程序,我已经在我的 Ubuntu 14.04 上成功运行了很长时间,没有任何问题。更新到 Ubuntu 16.04 后,我开始看到一些奇怪的行为。我再次在 Ubuntu 14.04 上尝试了它以确保它工作正常,但在 Ubuntu 16.04 上,我的菜单事件没有被触发,并且当我尝试更改图标时应用程序有时没有响应。
一些适用于 Ubuntu 14.04 但不适用于 Ubuntu 16.04 的基本代码指示器
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk as gtk
gi.require_version('AppIndicator3', '0.1')
from gi.repository import AppIndicator3 as appindicator
def main():
indicator = appindicator.Indicator.new(
'mytestindicator',
gtk.STOCK_INFO,
appindicator.IndicatorCategory.SYSTEM_SERVICES
)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
indicator.set_menu(build_menu())
gtk.main()
def quit(source):
gtk.main_quit()
def build_menu():
menu = gtk.Menu()
item_quit = gtk.MenuItem('Quit')
item_quit.connect('activate', quit)
menu.append(item_quit)
menu.show_all()
return menu
if __name__ == '__main__':
main()
所以我的问题是 Ubuntu 14.04 和 16.04 之间发生了什么变化,我怎样才能创建一个可靠的指标小程序,在两个系统上都能顺利运行?
我注意到一件事,在 Ubuntu 14 上我有 gi.repository 版本 3.12.0,但在 Ubuntu 16 上它是 3.20.0,但不确定这是否重要。