2013-04-08 1 views
2

У меня есть приложение панели лотка, которое отображает уведомления. Это обычные уведомления Windows, как воздушный шар над значком приложения.Как добавить разрывы строк на воздушный шар с уведомлением Windows?

Это базовый код:

class TrayIconApplication: 
    def __init__(self): 
     [very long code to setup instance] 

    def notify(self, message, title): 
     Shell_NotifyIcon(NIM_MODIFY, 
         (self.hwnd, 0, NIF_INFO, WM_USER + 20, 
          self.hicon, 'Balloon Tooltip', message, 200, 
          title)) 

Как добавить разрывы строк в сообщении, делая его в несколько строк? Я пробовал \n и \r\n, но они, похоже, не влияют на текст. \r alones отображается как одно место, а \t работает как ожидалось, но все сообщения по-прежнему отображаются только в одной строке.

Сочетания \r и \n, так же как и их повторения, не дали никаких результатов.

+0

Кроме того, это не похоже на HTML. '
' был показан буквально. – BoppreH

ответ

2

Я изменил название, а не сообщение. Я смешал порядок параметров и показывал уведомление с заголовком, но пустое сообщение. И титульные строки нельзя сломать, поэтому они игнорировали все мои попытки.

Разница в том, что заголовок немного больше, синий и отображается в той же строке, что и кнопка закрытия.

Как только я переключил параметры, \n начал приниматься как символ разрыва строки и отображать уведомление с несколькими линиями.

+0

Глупые проблемы. Я поддерживаю альтернативные ответы из-за стыда и благодарности. – BoppreH

1

Вы пробовали \ n \ r? (обратное \ r \ n). Я знаю, что это звучит глупо, но у меня были неожиданные результаты, связанные с упорядочиванием символов в Юникоде Windows. Если все остальное не работает, попробуйте 0x0D, 0x0A или наоборот, чтобы увидеть, как он реагирует.

+0

Да, чтобы убедиться, что я даже сделал длинную строку '\ n \ r \ n \ r \ n \ r'. Он отображается в виде одиночного пробела из-за конечного '\ r'. – BoppreH

1

Я думаю, что текст для значка в системном трее не позволяет использовать явный новый символ строки. Если текст слишком длинный, Windows автоматически переместит текст на следующую строку в соответствии с их шириной строки.

+0

Пробовал очень длинную строку, она просто отображала начало и отсекала остальных без предупреждения или '...' в конце. – BoppreH