Показ уведомления в основанных на Ubuntu установках

Я (пытаюсь) записать простой сценарий Python для основанной на человечности ОС. Как часть сценария, также показывают уведомление. Теперь, я прошел много сообщений здесь, но с каждым у меня есть сопроводительный вопрос (и некоторая проблема). Следующее является различными путями, я уже попробовал (и связал проблему),

Используя notify2

Это в основном работало хорошо. Однако со следующей проблемой,

a. По некоторым причинам значок не показывают в пузыре уведомления и нет никакой ошибки. Простой оператор печати,print(os.path.abspath('icon.svg'), возврат пути, корректного пути урожаев, но все еще никакого изображения.

Вот точный код, который я использую,

def show_notification(title, content):
    notify2.init(title)
    n = notify2.Notification(title, content, os.path.abspath('icon.svg'))
    n.show()

Используя от импорта gi.repository Уведомляют

После файла привет-единицы здесь. Я пытался использовать, Уведомляют. Я не смог получить это выполнение вообще! В прошлый раз, когда я попробовал, я получил ошибку ImportError: cannot import name Notify путем запущения скрипта как python test.py.

Выполнение того же использования python3 как в python3 test.py результаты по другой ошибке ImportError: cannot import name Notify, introspection typelib not found.

Для преодоления этого я действительно пытался установить python-gobject и libnotify-bin но они уже установлены в моей системе (Элементарная ОС Loki). Ошибки все еще сохраняются.

Используя подпроцесс

Это работало без любой проблемы, но я не уверен - ли это лучший способ показать уведомление, так как я намереваюсь показать обычные уведомления. Это - код, который я использовал,

import subprocess as s
s.call(['notify-send','foo','bar'])

Базовый вопрос

Так как это - первый раз, когда я пытаюсь разработать для сообщества Linux (или скорее Ubuntu), я довольно плохо знаком с разработкой Linux. При попытке искать простое (и корректный) реализация, такая как реализация уведомления, была довольно трудоемкой и сбивала с толку. Кроме предложения правильного способа реализовать уведомления, я буду ценить, если кто-то мог бы указать на меня в правильном направлении, чем-то как руководство разработчика андроида, которое показывает или имеет ссылки API.

И прежде чем любой спрашивает о моих предпочтениях разработки, я более доволен Python. Относительно GUI снова я не уверен, которые соединяют каналом для взятия, хотя GTK, кажется, более популярен.

2
задан 5 November 2016 в 01:17

1 ответ

Вызов уведомлений из приложений на Ubuntu

Определенно третья, с помощью или subprocess.call() или subprocess.Popen(). Замечание импортировать, но subprocess. Ничто нового устанавливать. Простой и легкий, всегда работы отлично.

Несколько примеров:

  1. Просто текстовое уведомление:

    subprocess.Popen(["notify-send", "some text"])
    

    enter image description here

  2. заголовок А и некоторый текст:

    subprocess.Popen(["notify-send", "Title", "some text"])
    

    enter image description here

  3. значок, заголовок и некоторый текст:

    img = "/path/to/icon.png"
    subprocess.Popen(["notify-send", "-i", img, "Title", "some text"])
    

    enter image description here

3
ответ дан 2 December 2019 в 02:49

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

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