Как отправлять текстовые сообщения в пузырьки уведомлений?

Я написал код python для получения случайного текста в файл .txt. Теперь я хочу отправить этот случайный текст в область уведомлений с помощью команды «notify-send». Как мы это делаем?

36 голосов | спросил Anuroop Kuppam 29 FebruaryEurope/MoscowbWed, 29 Feb 2012 12:48:23 +0400000000pmWed, 29 Feb 2012 12:48:23 +040012 2012, 12:48:23

5 ответов


55

Мы всегда можем вызывать notify-send как подпроцесс, например:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import subprocess

def sendmessage(message):
    subprocess.Popen(['notify-send', message])
    return

В качестве альтернативы мы также можем установить python-notify  Установить python-notify и вызвать уведомление через это:

import pynotify

def sendmessage(title, message):
    pynotify.init("Test")
    notice = pynotify.Notification(title, message)
    notice.show()
    return
ответил Takkat 29 FebruaryEurope/MoscowbWed, 29 Feb 2012 13:16:50 +0400000000pmWed, 29 Feb 2012 13:16:50 +040012 2012, 13:16:50
9

python3

Пока вы можете вызвать notify-send через os.system или subprocess он, возможно, более совместим с программированием на базе GTK3 для использования Notify gobject-introspection .

Маленький пример покажет это в действии:

from gi.repository import GObject
from gi.repository import Notify

class MyClass(GObject.Object):
    def __init__(self):

        super(MyClass, self).__init__()
        # lets initialise with the application name
        Notify.init("myapp_name")

    def send_notification(self, title, text, file_path_to_icon=""):

        n = Notify.Notification.new(title, text, file_path_to_icon)
        n.show()

my = MyClass()
my.send_notification("this is a title", "this is some text")
ответил fossfreedom 8 J0000006Europe/Moscow 2014, 18:15:58
5
import os
mstr='Hello'
os.system('notify-send '+mstr)
ответил Syed 'sunny' I. Tauhidi 8 J0000006Europe/Moscow 2014, 04:57:02
4

Чтобы ответить на вопрос Мехула Мохана, а также предложите самый короткий способ направить уведомление с заголовком и разделами сообщений:

import os
os.system('notify-send "TITLE" "MESSAGE"')

Включение этого в функцию может быть немного запутанным из-за кавычек в кавычках

import os
def message(title, message):
  os.system('notify-send "'+title+'" "'+message+'"')
ответил Silver Ringvee 26 +03002015-10-26T13:01:42+03:00312015bEurope/MoscowMon, 26 Oct 2015 13:01:42 +0300 2015, 13:01:42
1

Для тех, кто смотрит на это в +2018, я могу порекомендовать notify2 .

  

Это чистая замена python для notify-python, используя python-dbus для непосредственного взаимодействия с сервером уведомлений. Он совместим с Python 2 и 3, и его обратные вызовы могут работать с приложениями Gtk 3 или Qt 4.

ответил Supreme Barbarian 14 Jpm1000000pmSun, 14 Jan 2018 20:48:47 +030018 2018, 20:48:47

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132