Я пытаюсь создать универсальный объектив, как выполнить команду, когда мы выбираем запись из универсального объектива в следующем коде results.append (URL, значок, категория, тип MIME, текст, комментарий, перетаскивание и drop url) я попытался установить file: //, но он открывает файл в текстовом редакторе (если он не читается в текстовом редакторе, он ничего не делает) Пожалуйста, помогите
Спасибо Vishnu V
Вы можете подключиться к сигналу activit-uri для выполнения действий с результатом, отображаемым в объективе.
Использование Python
Во-первых, вам необходимо подключить сигнал activit-uri в функции демона init (где вы подключаете search-change и filters-change )
self.scope.connect ("activate-uri", self.activate_uri)
Затем создайте функцию activ_uri в демоне.
def activate_uri(self, scope, uri):
#Do stuff with uri here
return Unity.ActivationResponse (handled = Unity.HandledType.HIDE_DASH, goto_uri = '')
Эта функция берет объект области и параметр url из результата. url не обязательно должен быть uri, но должен быть текстовым. Вы можете делать что угодно с текстом в функции. В конце функции вам нужно вернуть Unity.ActivationResponse , как описано выше, чтобы закрыть черту.
Взгляните на http://bazaar.launchpad.net/~markjtully/+junk/calendar-lens/view/30/calendar-lens-daemon.py , строка 101 & amp; 274-296 для примера этого в действии.
Использование быстрого или единственного синглета
С быстрым, это еще проще: Добавить функцию
def handle_uri(self, scope, uri):
# Do stuff with the uri here
в ваш класс объективов (в __init__.py ). Он будет автоматически подключен к сигналу, вам не нужно заботиться об этом. Не забудьте добавить из gi.repository import Unity в свои операторы импорта.