web-dev-qa-db-fra.com

Comment écrire des indicateurs en python?

Je cherche à développer des indicateurs simples, tels que numlock/capslock et brigthness, etc. Comment pourrais-je créer des indicateurs en python? Existe-t-il des tutoriels qui me guident dans la rédaction de mon premier indicateur (comme pour les applications en rapide)? Des solutions faciles pour commencer comme rapidement des modèles?

23
DoGoDo

Vous pouvez trouver la page pour écrire des indicateurs d'application ici:

Voir également:

Sur cette page, vous trouverez des liens vers des exemples dans Python et dans la documentation de l'API. Le modèle ubuntu-application dans Quickly devrait contenir des exemples d'utilisation d'appindicateurs. Bonne chance!

13
Jorge Castro

Je pense que Rédaction d’indicateurs avec Python, GIR et GTK , comme mentionné par @fossfreedom, explique comment créer des indicateurs pour Unity. (Lire que 1ère)

J'utilise Ubuntu 14.04, rapidement 12.08.1. Ceci est une démonstration pour un exemple de travail complet construit à partir d'un modèle Quickly.

  1. OP veut juste un indicateur (application graphique non complète) alors commençons par le modèle ubuntu-cli Quickly:

    quickly create ubuntu-cli indicator-demo
    

    Il est possible qu'un message d'erreur concernant un correctif non publié ( bogue n ° 106411 ) apparaisse dans ce modèle:

    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
    

    Autorisations de correctifs

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

    Tester

    $ quickly run
    I'm launched and my args are:
    
  2. Il y a un bel exemple PYGI de buntu Wiki: Indicateurs d'application . Il devrait être facile de l'intégrer.

    Ouvrir pour éditer:

    quickly edit
    
    • Modifiez __init__.py, ajoutez les importations de modules nécessaires:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
      
    • Dans la fonction main(), entre:

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

      ajouter:

      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. Ajoutez des icônes à un nouveau dossier de données:

    mkdir data
    

    J'ai copié des icônes de paquets installés, juste pour faire l'exemple:

    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. Essaye-le:

    quickly run
    
  5. Créer un paquet et le publier:

    quickly package
    quickly share --ppa your-ppa
    

Notes:

  1. Eh bien, je n’ai pas mis à jour le fichier de contrôle du paquet Debian, mais les dépendances ont été automatiquement ajoutées au DEB généré:

    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
    

    En outre, les icônes précédemment ajoutées dans le dossier de données ont été incluses dans le package.

  2. J'ai déjà fait face à un cas similaire auparavant, Comment ajouter un applet d'état de modificateur de clavier au panneau Unity? . La réponse contient un exemple/prototype d'indicateur de clavier utilisant libappindicator (mais dans le langage de programmation c).

    libappindicator manque d'une fonctionnalité importante qui facilite le portage d'autres indicateurs de postes de travail. L'icône ne peut être chargée qu'à partir du chemin. Voir le bogue 812067 API nécessaire: prise en charge de la configuration des icônes pixbuf

Références:

  • La référence complète de l'API pour libappindicator est disponible au format HTML dans le package libappindicator-doc. Regardez dans /usr/share/gtk-doc/html/libappindicator/

    Notez qu'il prend en charge l'ajout d'une étiquette à une icône d'indicateur située à côté.

  • buntu Wiki: Indicateurs d'application
  • buntu Wiki: Rapidement

Questions connexes:

7
user.dz

Ce le lien vous apprendra à créer un indicateur de courrier nouveau en python + Unity, qui fonctionne avec GMail. Cela vous donnera une base solide dans la structure de base d'un applet tout en fournissant un exemple réel (bien que simpliste) que vous pouvez facilement étendre. Il parcourt le script final pièce par pièce.
This est un autre programme python avec des commentaires en code, créé avec Pygtk

3
Prinz