Python AppIndicator バインディング-> メニューが開いているかどうかを確認する方法?




pygtk ubuntu-unity (2)

Launchpad https://bugs.launchpad.net/screenlets/+bug/522152バグがありましたhttps://bugs.launchpad.net/screenlets/+bug/522152

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メニューがユーザーによって実行されていないかどうかをチェックする方法です(インジケータアイコンがクリックされたなど)。 それで、メニューが開いたときに放出される信号がありますか?


答えは残念ながらないようです。

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')

私はそれらのすべてを試して、インジケータがクリックされたときにアクティブになるようなものはありません。 ユニティ開発者が価値のあることは、すべてのインジケータを統一的な方法で動作させたいと思うため、意図的に制限されている可能性が非常に高いです。





appindicator