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 где-либо.)