Bagaimana cara menulis Appindicators dengan python?


22

Saya ingin mencoba dan mengembangkan beberapa indikator sederhana, untuk numlock / capslock dan brigthness, dll. Bagaimana cara membuat indikator dengan python? Apakah ada tutorial yang memandu saya dalam menulis appindicator pertama saya (seperti untuk aplikasi dengan cepat)? Adakah solusi mudah untuk memulai seperti templat cepat?


Terutama appindicators untuk pyqt5 atau pygi dan python3 (yang juga akan bekerja di luar persatuan).
Mateo

Jawaban:


12

Anda dapat menemukan halaman untuk menulis indikator aplikasi di sini:

Lihat juga:

Pada halaman itu Anda akan menemukan tautan ke contoh-contoh dalam Python dan dokumentasi API. Templat aplikasi ubuntu di Quickly seharusnya memiliki contoh penggunaan aplikator. Semoga berhasil!


Terima kasih! Saya berharap untuk tutorial langkah-demi-langkah yang lebih untuk percobaan pertama saya, tetapi saya akan puas dengan apa yang ada. Saya akan tetap membuka pertanyaan untuk saat ini jika ada yang tahu tentang beberapa tutorial lainnya.
DoGoDo

Anda akan menemukan tutorial untuk memulai di developer.ubuntu.com/get-started - lihat bagian sumber daya untuk konten yang lebih banyak juga! developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella

Terima kasih, @vidaPlanella saya menonton tutorial itu untuk memulai dengan program normal, tetapi bahkan tidak menyebutkan indikator. Juga tautan lainnya.
DoGoDo

Apa yang tidak Anda mengerti tentang contoh di sini? Ini adalah contoh langsung, sederhana, dan berfungsi (diambil dari tautan dalam jawaban) developer.ubuntu.com/resources/technologies/…
Timo

2
Pertanyaan serupa atau sama di sini - askubuntu.com/questions/108035/…
fossfreedom

7

Saya pikir Menulis indikator dengan Python, GIR dan GTK3 , sebagaimana disebutkan oleh @fossfreedom, mencakup cara membuat indikator untuk Unity. (Baca 1 itu)

Saya menggunakan Ubuntu 14.04, Cepat 12.08.1. Ini adalah demo untuk build contoh bangunan yang lengkap dari templat Quickly.

  1. OP hanya menginginkan indikator (tidak menyelesaikan aplikasi GUI) jadi mari kita mulai dengan ubuntu-cli Templat cepat:

    quickly create ubuntu-cli indicator-demo

    Ini dapat memunculkan pesan kesalahan untuk perbaikan bug yang belum dirilis ( bug # 1064110 ) dalam templat ini:

    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
    

    Perbaiki izin

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

    Uji

    $ quickly run
    I'm launched and my args are:
  2. Ada contoh PYGI yang bagus dari Ubuntu Wiki: Indikator Aplikasi . Seharusnya mudah untuk mengintegrasikannya.

    Buka untuk diedit:

    quickly edit
    • Ubah __init__.py, tambahkan impor modul kebutuhan:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • Dalam main()fungsinya, antara:

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

      menambahkan:

      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. Tambahkan ikon ke folder data yang baru dibuat:

    mkdir data

    Saya menyalin beberapa ikon dari paket yang diinstal, hanya untuk membuat contoh:

    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. Menguji:

    quickly run
  5. Buat paket dan publikasikan:

    quickly package
    quickly share --ppa your-ppa

Catatan:

  1. Yah, saya tidak memperbarui file kontrol paket debian, tetapi dependensi telah ditambahkan secara otomatis ke DEB yang dihasilkan:

    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

    Juga, ikon yang sebelumnya ditambahkan di folder data dimasukkan dalam paket.

  2. Saya menghadapi kasus serupa sebelumnya, Bagaimana cara menambahkan applet state modifier keyboard ke panel Unity? . Jawabannya berisi contoh / prototipe indikator keyboard menggunakan libappindicator (Tapi dalam bahasa pemrograman c).

    libappindicator tidak memiliki fitur penting yang memudahkan porta indikator desktop lainnya. Ikon hanya dapat dimuat dari jalur. Lihat Bug # 812067 API diperlukan: dukungan pengaturan ikon pixbuf

Referensi:

  • Referensi API lengkap untuk libappindicator tersedia sebagai HTML dalam libappindicator-docpaket. Lihat kedalam/usr/share/gtk-doc/html/libappindicator/

    Perhatikan bahwa ini mendukung penambahan label di sebelah ikon indikator.

  • Wiki Ubuntu: Indikator Aplikasi
  • Wiki Ubuntu: Cepat

Pertanyaan-pertanyaan Terkait:


3

Tautan ini akan mengajarkan Anda untuk membuat indikator email dasar baru dalam python + unity, yang berfungsi dengan GMail. Ini akan memberi Anda landasan yang kokoh dalam struktur dasar sebuah applet sambil memberikan contoh dunia nyata (meskipun sederhana) yang dapat Anda perpanjang dengan mudah. Ini melalui potongan skrip final demi sepotong.
Ini adalah program python lain dengan komentar dalam kode, dibuat menggunakan Pygtk

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.