Запустите процесс Qt tray без значка док-станции на Mac

У меня есть комплект с графическим интерфейсом, сервисом и трей. Обратите внимание, что это три отдельных процесса.

Это может звучать странно, трей — это представление сервиса, и пользователи могут открыть графический интерфейс, который создаст трей, если ничего не выйдет.

Так что в моем коде GUI у меня есть что-то вроде ниже:

QProcess::startDetached("my-tray");

Весь пакет настроен, поскольку GUI является основным исполняемым файлом.

ПРОБЛЕМА ЕСТЬ: когда GUI запускает трей, я вижу две иконки в доке. То, что я хочу, это запуск лотка без каких-либо дополнительных значков в доке.

Я попытался установить для QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM значение true, как предложено Вот.

Я пытался изменить политику активации программно Вот.

Я не думаю, что установка LSUIElement на 1 в plist-файле — это правильное решение для меня, потому что я все еще хочу, чтобы графический интерфейс отображал значок в доке.

В настоящее время я помещаю все процессы в папку MacOS в комплекте. Перемещение лотка в папку ресурсов привело к тому, что не удалось загрузить некоторую библиотеку какао.

Не удалось запустить это приложение, так как не удалось найти или загрузить
Плагин платформы Qt «Какао» в «».

Весь проект является проектом Qt, написанным на C ++. Процесс в трее по сути является QSystemTrayIcon.

1

Решение

ПРОБЛЕМА ЕСТЬ: когда GUI запускает трей, я вижу две иконки в доке.

Одним из возможных решений было бы сделать так, чтобы «лоток» обрабатывал свой собственный пакет приложений (и все еще помещал в пакет основного приложения) и настраивал

<key>NSUIElement</key>
<string>1</string>

в Info.plist из комплекта лотка.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]