Я пытаюсь разработать несколько простых индикаторов, для numlock / capslock и britthness, и т. Д. Как мне создать индикаторы в python? Есть ли какие-нибудь учебные пособия, которые помогут мне написать мой первый appindicator (например, для приложений в быстро)? Какие-нибудь простые решения для быстрого запуска, как шаблоны?
Вы можете найти страницу для написания индикаторов приложения здесь:
См. Также:
На этой странице вы найдете ссылки на примеры в Python и документацию по API. В шаблоне ubuntu-приложения в Quickly должны быть примеры использования appindicators. Удачи!
Эта ссылка научит вас создавать базовый новый почтовый индикатор в python + unity, который работает с GMail. Это даст вам прочное основание в базовой структуре апплета, предоставляя реальный (хотя и упрощенный) пример, который вы можете легко расширить. Проходит финальный сценарий по частям.
Это - еще одна программа на Python с комментариями в коде, выполненная с использованием Pygtk
Я думаю, Пишущий индикаторы с Python, GIR и GTK3, как упомянуто @fossfreedom, покрытия, как создают индикаторы для Единицы. (Считайте что 1-й),
Я использую Ubuntu 14.04, Быстро 12.08.1. Это - демонстрация для полной рабочей сборки в качестве примера из шаблона Quickly.
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:
Существует хороший пример 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()
Добавьте значки к недавно созданной папке данных:
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
Протестируйте его:
quickly run
Создайте пакет и опубликуйте его:
quickly package
quickly share --ppa your-ppa
Примечания:
Ну, я не обновил 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
Кроме того, ранее добавленные значки в папке данных были включены в пакет.
Я столкнулся с подобным случаем прежде, Как добавить апплет состояния модификатора клавиатуры к панели Unity?. Ответ содержит индикатор клавиатуры примера/прототипа с помощью libappindicator (Но на c языке программирования).
libappindicator испытывает недостаток в важной функции, которые делают легкими к портам другие настольные индикаторы. Значок может быть загружен только из пути. Посмотрите Ошибку № 812067 необходимый API: поддержка установки значка pixbuf
Ссылки:
Полная ссылка API для libappindicator доступна как HTML в libappindicator-doc
пакет. Заглянуть /usr/share/gtk-doc/html/libappindicator/
Заметьте, что это поддерживает добавляющую маркировку a около значка индикатора.
Связанные вопросы: