PythonでAppindicatorsを書く方法?


22

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


特に、pyqt5またはpygiおよびpython3のインディケーター(これは、Unityの外部でも機能します)。
マテオ14年

回答:


12

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

こちらもご覧ください:

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


ありがとうございました!私は最初の試みのために、より段階的なチュートリアルを望んでいましたが、何で間に合うでしょう。誰かが他のチュートリアルを知っている場合に備えて、今のところ質問を開いたままにします。
DoGoDo

developer.ubuntu.com/get-startedで始めるためのチュートリアルがあります-その他のコンテンツについては、リソースセクションをご覧ください!developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella

おかげで、@ DavidPlanella、私は通常のプログラムを開始するためにそのチュートリアルを見ましたが、インジケータについても言及していません。他のリンクも同様です。
DoGoDo

ここの例について何がわからないのですか?それは(答えにリンクから取られた)straightforwarded、シンプル、実施例であるdeveloper.ubuntu.com/resources/technologies/...
ティモ

2
同様のか、ここで同じ質問- askubuntu.com/questions/108035/...
fossfreedom

7

私は思うの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#1064110)のエラーメッセージが表示される場合があります。

    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. Ubuntu Wikiの素晴らしいPYGIの:Application Indicatorsがあります。簡単に統合できるはずです。

    編集用に開く:

    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. 以前、同様のケースに直面しました。キーボードモディファイアステートアプレットをUnityパネルに追加する方法は?。答えには、libappindicatorを使用したexample / prototypeキーボードインジケーターが含まれています(ただし、cプログラミング言語では)。

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

参照:

関連する質問:


3

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.