Видео ролики бесплатно онлайн

Смотреть 2022 видео

Официальный сайт mixzona 24/7/365

Смотреть видео бесплатно

07.02.11 15:16

sagod — Пишем Indicator Applet для GNOME

В статье описывается процесс создания апплета-индикатора для GNOME.

=amazing applet

Известно, что большинство апплетов для GNOME написаны на C, чем достигается некоторое преемущество в скорости работы перед программами на Perl/Python.
С другой стороны, писать на C сложнее, поэтому работать будем с Python.

Первым делом, нужно подключить библиотеку appindicator:

import appindicator

Затем создаем объект класса Indicator с тремя параметрами:
  • 1 - уникальный идентификатор приложения
  • 2 - тип значка
  • 3 - категория, указывающая на положение вашей программы на панели GNOME

    Всего выбирать можно из 5 вариантов:
    • CATEGORY_APPLICATION_STATUS
    • CATEGORY_COMMUNICATIONS
    • CATEGORY_SYSTEM_SERVICES
    • CATEGORY_HARDWARE
    • CATEGORY_OTHER

    Нам подойдет первый:

indicator = appindicator.Indicator("amazing-applet", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS)


Теперь установим статус индикатору:
  • STATUS_ACTIVE - иконка отображена
  • STATUS_PASSIVE - иконка спрятана
  • STATUS_ATTENTION - иконка в состоянии привлечении внимания пользователя

indicator.set_status(appindicator.STATUS_ACTIVE)


Также добавим графические иконки для обоих состояний индикатора (активного и того, который привлекает внимание):
1
2
indicator.set_attention_icon(indicator_icon)
indicator.set_icon(indicator_icon)

В переменной indicator_icon хранится путь до графического файла.

Не секрет, что у каждого апплета есть меню. И у нашего будет. Подключаем pygtk и gtk и создаем объект класса gtk:
menu = gtk.Menu()

Пункты создаются и добавляются следующим образом:
1
2
item = gtk.MenuItem("Item name")
menu.append(item)

Отслеживаем нажатие на выбранный пункт меню так:
item.connect("activate", foo)


После того как меню сформировано, добавляем его к апплету:
indicator.set_menu(menu)


Отлично, у нас уже есть хоть и бесполезное, но работающее приложение (засмотреть код).

Теперь сделаем возможность отправки сообщений в notify.
Добавляем новый пункт в меню и описываем действия, которые будут выполняться по нажатию:
1
2
3
4
5
icon = 'file://' + indicator_icon
title = 'Amazing Applet'
text = 'Hello! I'm your first indicator applet.'
notif = pynotify.Notification(title, text, icon);
notif.show()


Да, для работы pynotify надо подключить... pynotify.
Готово!
Смотрим что получилось у вас, сравниваем с моим кодом, ищем ошибки, пишем в комментариях вопросы.



nikebl 07.02.11 16:36 # +1
Люблю пайтон конечно, но все равно велосипед, однако.
notify-send -i=/path/to/icon SUBJ MESSAGE
nikebl 07.02.11 16:38 # +0
пардон если был не прав, эта штука постоянно висит что ли? ( в отличие от libnotify?)
wiz 07.02.11 17:44 # +3
ага, заметил только знакомые слова из поста (=

индикаторы и уведомления вообще никак не связаны. это скорее иконки-в-трее-где-часы™
sagod 07.02.11 18:12 # +1
именно так :)
перключение раскладки, пиджин, дропбокс, сообщения (значки на панели GNOME) - все это апплеты-индикаторы.
sagod 07.02.11 18:10 # +0
Почему же велосипед?
Ваш пример никак не связан с Indicator Applet.
VovanR 08.02.11 00:19 # +2
На самом деле глядя на скриншот к теме кажется, что речь будет идти именно об всплывающем нотификаторе=)
До меня тоже не сразу дошло что статья про апплет-индикатор, что куда интересней.
Спасибо за статью.

Лучшие блоги (все 160)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 3323 из 237 городов)
Топ пользователей Топ блогов
В сети: derfenix, doraneko

Новенькие: tosh, dream-, Sidny Sho, 0xd34df00d, volinads
welinux.ru

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн