Python AppIndicator绑定 - >如何检查菜单是否打开?

时间:2011-08-15 10:05:14

标签: python pygtk ubuntu-unity appindicator

以下是AppIndicator的最小示例:

#!/usr/bin/python

import gobject
import gtk
import appindicator

if __name__ == "__main__":
    ind = appindicator.Indicator("example-simple-client", "gtk-execute", appindicator.CATEGORY_APPLICATION_STATUS)
    ind.set_status (appindicator.STATUS_ACTIVE)
    menu = gtk.Menu()
    menu_items = gtk.MenuItem('Quit')
    menu.append(menu_items)
    menu_items.connect("activate", gtk.main_quit)
    menu_items.show()
    ind.set_menu(menu)
    gtk.main()

不幸的是,关于此的文档非常不完整。我正在寻找的是一种检查AppIndicator菜单是否由用户打开的方法(例如点击指示符图标)。那么当菜单打开时会发出一个信号吗?

2 个答案:

答案 0 :(得分:8)

看起来答案是不幸的。

print gobject.signal_list_names(ind)
('new-icon', 'new-attention-icon', 'new-status', 'new-label', 'x-ayatana-new-label', 'connection-changed', 'new-icon-theme-path')

我尝试了所有这些,当点击指标时,它们似乎都没有激活。对于它的价值而言,统一开发者似乎希望保持所有指标以统一的方式运行,因此它很可能是故意限制的。

答案 1 :(得分:2)

在Launchpad https://bugs.launchpad.net/screenlets/+bug/522152

上提交了一个关于它的错误

请注意,“激活”信号可用于AppIndicator子菜单。