Python'da Appindicators nasıl yazılır?

23

Bazı basit göstergeler, numlock / capslock ve brigthness vb. için denemek ve geliştirmek istiyorum. Python'da göstergeler yaratmaya nasıl giderim? İlk uygulayıcılarımı yazarken (hızlı bir şekilde uygulamalar için) bana yol gösteren herhangi bir eğitici var mı? Hızlı şablonlar gibi başlamak için kolay çözümler?

    
sordu DoGoDo 11.11.2012 21:49

3 cevap

13

Uygulama göstergeleri yazmak için sayfayı burada bulabilirsiniz:

Ayrıca bkz:

Bu sayfada Python'daki örneklere ve API belgelerine bağlantılar bulacaksınız. Quickly'deki ubuntu-application şablonunda, appindicators kullanımı hakkında örnekler bulunmalıdır. İyi şanslar!

    
verilen cevap Jorge Castro 11.11.2012 21:57
7

Python, GIR ve GTK3 ile yazma göstergeleri , @fossfreedom tarafından belirtildiği gibi, Birlik için göstergeler yaratmayı kapsar. (1. oku)

Ubuntu 14.04, Hemen 12.08.1 kullanıyorum. Bu, Quickly şablonundan eksiksiz bir çalışma örneği oluşturmak için demo.

  1. OP sadece gösterge (GUI uygulamasını tamamlamıyor) istiyor, bu yüzden ubuntu-cli ile başlayalım Hızlıca şablon:

    quickly create ubuntu-cli indicator-demo
    

    Bu şablonda yayınlanmamış hata düzeltmesi ( hata # 1064110 ) için bir hata iletisi oluşabilir:

    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
    

    İzinleri onayla

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

    Test

    $ quickly run
    I'm launched and my args are:
    
  2. Ubuntu Wiki: Uygulama Göstergeleri 'nden hoş bir PYGI örneği var. Onu entegre etmek kolay olmalı.

    Düzenlemek için aç:

    quickly edit
    
    • __init__.py 'yi değiştirin, ihtiyaç modülleri içe aktarma ekleyin:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
      
    • main() işlevinde, arasında:

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

      eklenti:

      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. Yeni oluşturulan bir veri klasörüne simgeler ekleyin:

    mkdir data
    

    Örneği yapmak için sadece bazı paketleri yüklü paketlerden kopyaladım:

    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. Test edin:

    quickly run
    
  5. Paket oluştur ve yayınla:

    quickly package
    quickly share --ppa your-ppa
    

Notlar:

  1. Ben debian paket kontrol dosyasını güncellemedim, Ama bağımlılıklar oluşturulan DEB'ye otomatik olarak eklendi:

    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
    

    Ayrıca, veri klasöründeki önceden eklenen simgeler pakete dahil edildi.

  2. Daha önce benzer bir durumla karşılaştım, Birlik paneline bir klavye değiştirici durum uygulaması nasıl eklenir? . Cevap, libappindicator kullanarak bir örnek / prototip klavye göstergesi içerir (Ama c programlama dilinde).

    libappindicator, diğer masaüstü ekranlarının bağlantı noktalarını kolaylaştıran önemli bir özellikten yoksundur. Simge sadece yoldan yüklenebilir. Bkz. Hata # 812067 API gerekli: pixbuf simgesi ayar desteği

Kaynaklar:

İlgili Sorular:

verilen cevap user.dz 28.06.2014 14:59
3

Bu bağlantı size temel yeni bir posta göstergesi oluşturmayı öğretecek GMail ile çalışan python + birlikteliğinde. Bu, bir applet'in temel yapısında sağlam bir temel oluşturarak, kolayca genişletebileceğiniz bir gerçek dünya (basit de olsa) sağlar. Son komut parçasından parçaya geçiyor.
This Pygtk

kullanılarak yapılan yorumlardaki başka bir python programıdır.     
verilen cevap Prinz 28.06.2014 10:35

Etiketlerdeki diğer soruları oku