Как будет реализовано приложение в системном трее на других платформах?

StackOverflow https://stackoverflow.com/questions/419334

Вопрос

В Windows есть «системный трей» где находятся часы и всегда работающие сервисы, такие как MSN, Steam и т. д.

Я бы хотел разработать приложение для лотка wxPython, но мне интересно, насколько хорошо оно будет портироваться на другие платформы. Каков эквивалент лотка на каждой платформе и сколько ручного труда потребуется для поддержки Windows, OSX и Linux (какие оболочки, в частности, будут наиболее дружественными).

Это было полезно?

Решение

wx - это кроссплатформенная библиотека с графическим интерфейсом и инструментами, поддерживающая Win32, Mac OS X, GTK +, X11, Motif, WinCE и многие другие. И если вы используете его классы, то ваше приложение должно работать на всех этих платформах. Информацию о системном трее можно найти в wxTaskBarIcon ( http://docs.wxwidgets.org/stable/wx_wxtaskbaron). HTML # wxtaskbaricon ).

Другие советы

В OS X у вас есть строка меню состояния - самые правые элементы часто связаны с состоянием (например, состояние батареи, соединения WiFi и т. д.).

Попробуйте поискать NSStatusBar и NSMenuExtra . Превратить приложение в приложение, которое имеет меню NSStatusBar и не отображается в Dock, почти тривиально. Есть учебные пособия около о том, как это сделать.

Для многих настольных систем Linux (Gnome, KDE и т. д.) Freedesktop's Протокол SysTray реализован. Вы можете попробовать это, если любое другое решение терпит неудачу.

В Linux это действительно зависит - у вас есть разные среды программирования, а у некоторых оконных менеджеров даже нет области трея. Кроме того, если вы используете Gtk (а wx - это действительно Gtk), gtk.StatusIcon твой друг.

Здесь приведены некоторые примеры этого (еще не проверили если они действительно работают, но должны показать вам путь).

Для wx я нашел несколько примеров кода здесь .

Используйте Qt: Пример Qt Systray

Это покажет иконку с systray на всех платформах, на которых работает Qt и которые поддерживают такие значки. Вам нужно будет разработать стратегию, когда функциональность systray не поддерживается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top