web-dev-qa-db-ja.com

アプリケーションのカスタムストックアイコンがubuntuユニティトップパネルメニュー(別名appmenu)で機能しない(「メニューにはアイコンがあります」がオン)

最近、ubuntu unityで、アプリのトップメニューにgtkストックに追加した(カスタム)アイコンが表示されず、基本的なgtkストックアイコンのみが表示されることに気付きました。

これは、トップメニューがユニティトップパネル(appmenu)に表示され、アプリケーションウィンドウには表示されないためにのみ発生します。正しいカスタムアイコンの代わりに、「gtk-missing-image」が表示されます。私のアプリのツールバーやその他のメニューでは、これらのアイコンが正しく表示されます。問題はトップメニューにのみあります。

これは、pygtk2(例: http://www.giuspen.com/cherrytree/ )とgobjectのイントロスペクション(例: http://www.giuspen.com/nautilus-pyextensions/)のいずれかで発生します。 )。ストックアイコンを次のように統合した後、gtkuiマネージャーを使用します。

factory = gtk.IconFactory()
pixbuf = gtk.gdk.pixbuf_new_from_file(filepath)
iconset = gtk.IconSet(pixbuf)
factory.add(stock_name, iconset)
factory.add_default()

誰かがこの問題を解決した場合は助けてください。乾杯、ジュゼッペ。

2
giuspen

AppIndicatorフレームワークは、アイコンについて知る必要があります。これを行うには、テーマディレクトリ、またはアプリケーションのカスタムテーマの一部である必要があります。 app_indicator_set_icon_theme_path()を使用してテーマディレクトリを追加できます。これにより、アプリケーションインジケータサービスは、カスタムアイコンを探す場所を知ることができます。 /usr/share/themes/hicolorにあるデフォルトのアイコンテーマにアイコンをインストールすることもできます。

最後に、完全なハックとして、その場でそれらを生成できます。これはindicator-multiloadによって行われることです。推奨されていないのでリンクはしませんが、何か必要な場合はそちらをご覧ください。

4
Ted Gould