Как написать Appindicators в Python?

Я пытаюсь разработать несколько простых индикаторов, для numlock / capslock и britthness, и т. Д. Как мне создать индикаторы в python? Есть ли какие-нибудь учебные пособия, которые помогут мне написать мой первый appindicator (например, для приложений в быстро)? Какие-нибудь простые решения для быстрого запуска, как шаблоны?

23
задан 12 November 2012 в 01:50

3 ответа

Вы можете найти страницу для написания индикаторов приложения здесь:

См. Также:

0
ответ дан 12 November 2012 в 01:50

Эта ссылка научит вас создавать базовый новый почтовый индикатор в python + unity, который работает с GMail. Это даст вам прочное основание в базовой структуре апплета, предоставляя реальный (хотя и упрощенный) пример, который вы можете легко расширить. Проходит финальный сценарий по частям.
Это - еще одна программа на Python с комментариями в коде, выполненная с использованием Pygtk

.
0
ответ дан 12 November 2012 в 01:50

Я думаю, Пишущий индикаторы с Python, GIR и GTK3, как упомянуто @fossfreedom, покрытия, как создают индикаторы для Единицы. (Считайте что 1-й),

Я использую Ubuntu 14.04, Быстро 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. Существует хороший пример PYGI из Ubuntu Wiki: Индикаторы приложения. Должно быть легко интегрировать его.

    Открытый для редактирования:

    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 (Но на c языке программирования).

    libappindicator испытывает недостаток в важной функции, которые делают легкими к портам другие настольные индикаторы. Значок может быть загружен только из пути. Посмотрите Ошибку № 812067 необходимый API: поддержка установки значка pixbuf

Ссылки:

  • Полная ссылка API для libappindicator доступна как HTML в libappindicator-doc пакет. Заглянуть /usr/share/gtk-doc/html/libappindicator/

    Заметьте, что это поддерживает добавляющую маркировку a около значка индикатора.

  • Ubuntu Wiki: индикаторы приложения
  • Ubuntu Wiki: быстро

Связанные вопросы:

7
ответ дан 12 November 2012 в 01:50

Другие вопросы по тегам:

Похожие вопросы: