2015-06-14 2 views
1

Я пытаюсь отображать уведомления с модулем уведомления pygobject (версия 3.16) в python. Мой код работает хорошо, за исключением случаев, когда в сообщении тела есть <. В этом случае тело не отображается.В сообщениях Gtk не отображаются теги «<»

Например, с помощью этого кода все в порядке:

from gi.repository import Gtk, Notify 

def callback(notification, action_name): 
    notification.close() 
    Gtk.main_quit() 

Notify.init('test') 
notification = Notify.Notification.new('Title', 'body') 
notification.set_timeout(Notify.EXPIRES_NEVER) 
notification.add_action('quit', 'Quit', callback) 
notification.show() 

Gtk.main() 

Но с этим возникает проблема:

from gi.repository import Gtk, Notify 

def callback(notification, action_name): 
    notification.close() 
    Gtk.main_quit() 

Notify.init('test') 
notification = Notify.Notification.new('Title', '<body') 
notification.set_timeout(Notify.EXPIRES_NEVER) 
notification.add_action('quit', 'Quit', callback) 
notification.show() 

Gtk.main() 

Я понимаю, что: Notification where the body is not displayed

Когда < является в заголовке, или когда я использую >, проблем нет.

Я попытался сбежать от <, но ничего не сделал. Итак, как я могу отобразить основной текст, содержащий <?

+0

В «<» отображает хорошо для меня. Это может быть проблема с шрифтом? –

+0

Я не думаю: нет проблем, когда «<» находится в заголовке, а «>» - в теле. – arthropode

+0

Какую рабочую среду и версию вы используете? – elya5

ответ

2

Я заметил, что в Gtk есть иногда HTML-код, как и при использовании set_markup .Я пытался с HMTL эквивалентным &lt; и он работал отлично:

from gi.repository import Gtk, Notify 

def callback(notification, action_name): 
    notification.close() 
    Gtk.main_quit() 

Notify.init('test') 
notification = Notify.Notification.new('Title', '&lt;body&gt;') 
notification.set_timeout(Notify.EXPIRES_NEVER) 
notification.add_action('quit', 'Quit', callback) 
notification.show() 
Смежные вопросы