web-dev-qa-db-ja.com

PythonでAppindicatorsを書く方法?

Numlock/capslockやbrigthnessなどのために、いくつかの簡単なインジケーターを開発しようとしています。Pythonでインジケーターを作成するにはどうすればよいですか?最初のappindicatorを書く手順を説明するチュートリアルはありますか?すぐにテンプレートを作成するような簡単なソリューションはありますか?

23
DoGoDo

アプリインジケーターを作成するページは、次の場所にあります。

こちらもご覧ください:

このページには、Pythonの例へのリンクとAPIドキュメントがあります。 Quicklyのubuntu-applicationテンプレートには、appindicatorの使用例が必要です。幸運を!

13
Jorge Castro

Python、GIR、GTK3を使用したインジケーターの作成 は、@ fossfreedomで述べたように、Unityのインジケーターの作成方法をカバーしていると思います。 (その1日目を読む)

Ubuntu 14.04、Quickly 12.08.1を使用しています。これは、Quicklyテンプレートからビルドする完全な実例のデモです。

  1. OPは単なるインジケーター(完全なGUIアプリではない)を必要としているため、ubuntu-cli Quicklyテンプレートから始めましょう:

    quickly create ubuntu-cli indicator-demo
    

    このテンプレートでは、未リリースのバグ修正( bug#106411 )のエラーメッセージが表示される場合があります。

    Creating project directory indicator-demo
    Creating bzr repository and committing
    Launching your newly created project!
    Traceback (most recent call last):
    ...
    OSError: [Errno 13] Permission denied
    ERROR: create command failed
    Aborting
    

    権限を修正

    cd indicator-demo/
    chmod +x bin/indicator-demo
    

    テスト

    $ quickly run
    I'm launched and my args are:
    
  2. buntu Wiki:Application Indicators のニースPYGIの例があります。簡単に統合できるはずです。

    編集用に開く:

    quickly edit
    
    • __init__.pyを変更し、必要なモジュールのインポートを追加します。

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
      
    • main()関数では、以下の間:

      print _("I'm launched and my args are: %s") % (" ".join(args))
      logging.debug(_('end of prog'))
      

      追加:

      ind = appindicator.Indicator.new_with_path (
                          _("Indicator demo for Quickly"),
                          "indicator-demo-icon-normal",
                          appindicator.IndicatorCategory.APPLICATION_STATUS,
                          indicator_democonfig.get_data_path())
      ind.set_status (appindicator.IndicatorStatus.ACTIVE)
      ind.set_attention_icon ("indicator-demo-icon-attention")
      
      # create a menu
      menu = Gtk.Menu()
      
      # create one item 
      menu_items = Gtk.MenuItem(_("Quit"))
      menu.append(menu_items)    
      # this is where you would connect your menu item up with a function:
      menu_items.connect("activate", Gtk.main_quit )    
      # show the item
      menu_items.show()
      
      ind.set_menu(menu)
      
      Gtk.main()
      
  3. 新しく作成したデータフォルダーにアイコンを追加します。

    mkdir data
    

    サンプルを作成するために、インストール済みのパッケージからいくつかのアイコンをコピーしました。

    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages.svg data/indicator-demo-icon-normal.svg
    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages-new.svg data/indicator-demo-icon-attention.svg
    
  4. 試して:

    quickly run
    
  5. パッケージを作成して公開します。

    quickly package
    quickly share --ppa your-ppa
    

注:

  1. まあ、私はdebianパッケージ制御ファイルを更新しませんでしたが、依存関係は生成されたDEBに自動的に追加されました:

    Package: indicator-demo
    Version: 0.1
    Architecture: all
    Maintainer: UNKNOWN <UNKNOWN>
    Installed-Size: 57
    Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), gir1.2-gtk-3.0, gir1.2-appindicator3-0.1
    Section: python
    Priority: extra
    Description: UNKNOWN
     UNKNOWN
    

    また、データフォルダーに以前に追加されたアイコンがパッケージに含まれていました。

  2. 以前、同様のケースに直面しました nityパネルにキーボード修飾子状態アプレットを追加する方法? 。答えには、libappindicatorを使用したexample/prototypeキーボードインジケーターが含まれます(ただし、cプログラミング言語では)。

    libappindicatorには、他のデスクトップインジケーターを簡単に移植できる重要な機能がありません。アイコンはパスからのみロードできます。 バグ#812067必要なAPIを参照:pixbufアイコン設定のサポート

参照:

  • Libappindicatorの完全なAPIリファレンスは、libappindicator-docパッケージでHTMLとして入手できます。 /usr/share/gtk-doc/html/libappindicator/を見てください

    インジケーターアイコンの横にラベルを追加することをサポートしていることに注意してください。

  • buntu Wiki:Application Indicators
  • buntu Wiki:Quickly

関連する質問:

7
user.dz

This リンクを使用すると、Gmailで動作するpython + unityの基本的な新しいメールインジケーターを作成することができます。これにより、アプレットの基本構造にしっかりとした基盤が提供されると同時に、簡単に拡張できる実世界の(単純化された)例が提供されます。最終的なスクリプトを1つずつ確認します。
これ は別のpythonプログラムで、コードにコメントがあり、Pygtkを使用して作成されます。

3
Prinz