Python AppIndicator バインディング-> メニューが開いているかどうかを確認する方法?
pygtk ubuntu-unity (2)
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メニューがユーザーによって実行されていないかどうかをチェックする方法です(インジケータアイコンがクリックされたなど)。 それで、メニューが開いたときに放出される信号がありますか?
Launchpad https://bugs.launchpad.net/screenlets/+bug/522152バグがありましたhttps://bugs.launchpad.net/screenlets/+bug/522152
AppIndicatorサブメニューでは、「有効化」信号が利用可能であることに注意してください。
答えは残念ながらないようです。
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')
私はそれらのすべてを試して、インジケータがクリックされたときにアクティブになるようなものはありません。 ユニティ開発者が価値のあることは、すべてのインジケータを統一的な方法で動作させたいと思うため、意図的に制限されている可能性が非常に高いです。