Come scrivere Appindicator in Python?


22

Sto cercando di provare a sviluppare alcuni semplici indicatori, per il numlock / capslock e la luminosità, ecc. Come potrei fare per creare indicatori in Python? Ci sono tutorial che mi guidano attraverso la scrittura del mio primo appindicator (come per le app in fretta)? Qualche soluzione semplice per iniziare rapidamente come template?


Soprattutto gli appindicatori di pyqt5 o pygi e python3 (che funzioneranno anche al di fuori dell'unità).
Mateo,

Risposte:


12

Puoi trovare la pagina per scrivere gli indicatori delle app qui:

Guarda anche:

In quella pagina troverai collegamenti ad esempi in Python e nella documentazione API. Il modello di applicazione Ubuntu in Quickly dovrebbe avere esempi sull'uso degli appindicator. In bocca al lupo!


Grazie! Speravo in un tutorial più dettagliato per il mio primo tentativo, ma mi accontenterò di ciò che è. Terrò la domanda aperta per ora nel caso qualcuno sappia di altri tutorial.
DoGoDo,

Troverai un tutorial per iniziare su developer.ubuntu.com/get-started - controlla anche la sezione risorse per ulteriori contenuti! developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella,

Grazie, @DavidPlanella Ho visto quel tutorial per iniziare con i normali programmi, ma non menziona nemmeno gli indicatori. Nemmeno l'altro link.
DoGoDo,

Cosa non capisci sull'esempio qui? È un esempio chiaro, semplice e funzionante (tratto dal link in risposta) developer.ubuntu.com/resources/technologies/…
Timo

2
Domande simili o uguali qui - askubuntu.com/questions/108035/…
fossfreedom

7

credo scrivere indicatori con Python, GIR e GTK3 , come menzionato da @fossfreedom, copra come creare indicatori per Unity. (Leggi prima)

Sto usando Ubuntu 14.04, Quickly 12.08.1. Questa è una demo per un esempio di lavoro completo compilato da un modello Quickly.

  1. OP vuole solo un indicatore (non un'app GUI completa) quindi iniziamo con Ubuntu-Cli modello rapido:

    quickly create ubuntu-cli indicator-demo

    Potrebbe generare un messaggio di errore per la correzione di bug inediti ( bug # 1064110 ) in questo modello:

    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

    Risolvi i permessi

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

    Test

    $ quickly run
    I'm launched and my args are:
  2. C'è un bell'esempio di PYGI dal wiki di Ubuntu: Indicatori di applicazione . Dovrebbe essere facile integrarlo.

    Apri per modifica:

    quickly edit
    • Modifica __init__.py, aggiungi importazione moduli necessari:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • Nella main()funzione, tra:

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

      Inserisci:

      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. Aggiungi icone a una cartella di dati appena creata:

    mkdir data

    Ho copiato alcune icone dai pacchetti installati, solo per fare l'esempio:

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

    quickly run
  5. Crea pacchetto e pubblicalo:

    quickly package
    quickly share --ppa your-ppa

Gli appunti:

  1. Bene, non ho aggiornato il file di controllo del pacchetto debian, ma le dipendenze sono state aggiunte automaticamente al DEB generato:

    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

    Inoltre, nel pacchetto sono state incluse le icone aggiunte in precedenza nella cartella dei dati.

  2. Ho già affrontato un caso simile prima, Come aggiungere un'applet di stato del modificatore di tastiera al pannello Unity? . La risposta contiene un indicatore di tastiera di esempio / prototipo che utilizza libappindicator (ma nel linguaggio di programmazione c).

    libappindicator è privo di un'importante funzionalità che facilita il porting di altri indicatori desktop. L'icona può essere caricata solo dal percorso. Vedi Bug # 812067 API necessaria: supporto impostazione icona pixbuf

Riferimenti:

Domande correlate:


3

Questo link ti insegnerà a creare un nuovo indicatore di posta di base in python + unity, che funziona con GMail. Questo ti darà una solida base nella struttura di base di un'applet fornendo un esempio del mondo reale (anche se semplicistico) che puoi facilmente estendere. Passa attraverso la sceneggiatura finale pezzo per pezzo.
Questo è un altro programma Python con commenti in codice, realizzato usando Pygtk

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.