wx.TaskBarIcon в Ubuntu 11.04

В Unity нет лотка под Ubuntu 11.04.

Как сделать так, чтобы значок появлялся где-то в Unity? wx.TaskBarIcon не появляется нигде. Спасибо

3 ответа

Решение

Лучший ответ дать из официальной документации:

В X Window System оконный менеджер должен поддерживать либо протокол системного трея от freedesktop.org (WM, используемые современными рабочими средами, такими как GNOME >= 2, KDE >= 3 и XFCE >= 4, все это делают), либо более старые используемые методы. в GNOME 1.2 и KDE 1 и 2. Если этого не произойдет, значок появится на рабочем столе пользователя в виде окна верхнего уровня.

Поскольку не все оконные менеджеры имеют системный трей, нет гарантии, что wxTaskBarIcon будет работать правильно в X Window System, и поэтому приложения должны использовать его только в качестве дополнительного компонента своего пользовательского интерфейса. Пользователь должен быть обязан явно включить значок панели задач в Unix, он не должен быть включен по умолчанию.

http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html

Так что это относится к вашему оконному менеджеру, а не к программированию wxWidgets. wxTaskbarIcon надежен только под wxMSW, не знаю про mac. Лучше всего избегать этого, если вы хотите настоящие XPlatform-приложения.

В среде рабочего стола Ubuntu Unity (т. Е. Ubuntu 11.04 или 11.10) вам необходимо "внести в белый список" ваше приложение.

Есть разные способы сделать это, используя приложение "gsettings" из командной строки.

Я должен был сделать это, чтобы снова показывать такие программы, как Skype, в системном трее, а не только для моих собственных приложений, использующих wxPython.

Если вы создаете новое приложение, рассмотрите возможность использования более новой библиотеки libappindicator - это преемник Ubuntu для systray, который должен быть совместим по крайней мере с GNOME 2.x. (Я не знаю, поддерживает ли GNOME 3 или KDE отображение уведомлений libappindicator где-либо.)

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