Вот моя старая тема: как мне создать рабочий индикатор с помощью Qt / C ++? где мне предложили использовать библиотеку QSystemTray для создания иконки в трее в Ubuntu для моего приложения.
Sniqt - это программа, которая позаботится обо всем остальном. Как известно, Ubuntu избавился от значков в трее. Вместо этого теперь используются индикаторы и только индикаторы. Sniqt преобразует значки в Qt-трее в рабочие индикаторы.
Проблема в том, что он не делает очень приличное преобразование. Такие действия, как один клик, средний щелчок и т. Д., Не работают, в то время как они выполняются в системах, которые поддерживают значки в трее.
Есть ли способ вернуть эти действия обратно? Могу ли я использовать значок QSystemTray и при этом продолжать выполнять эти интересные (и очень полезные, в моем случае) действия в Ubuntu?
Я был бы рад узнать ответ на другой поток, о котором я говорил ранее (как сделать рабочий индикатор с помощью библиотек GTK и предотвратить сбой), а также.
Ссылка для ошибки Sniqt: https://bugs.launchpad.net/sni-qt/+bug/1027652
Ответы:
Кажется, что Qt не поддерживает эту вещь, по крайней мере, в Ubuntu Unity, даже если у него есть сигнал «активирован». Поэтому я бы порекомендовал вам использовать GTK и обычный traicicon, я не вижу альтернативы с Qt. Вы можете связаться с разработчиками Qt для разъяснения этого.
источник
sniqt
. Я не знаю, что индикаторы приложений даже способны различать левый и правый клики. Это было постоянным источником разочарования и для меня.Unity, по выбору, не поддерживает то, что вы называете «иконками достойного трея». Это показатели или ничего. Оттуда у вас есть несколько вариантов:
Обойтись с ограниченными возможностями индикатора. Вы можете установить меню, которое будет использоваться вашим индикатором, с помощью стандартного метода QSystemTray.setContextMenu ().
Отсоедините ваше приложение от systray полностью. Как, например, превратить его в плавающий значок на рабочем столе, который сможет принимать средние и правые щелчки, как задумал Бог и Матиас Эттрих. Вы можете найти простой пример того, как это сделать, здесь: http://kde-apps.org/content/show.php/KEyes?content=51493 (При желании, делайте это только тогда, когда вы обнаружите, что работаете под Unity, то есть, если $ DESKTOP_SESSION установлен в 'ubuntu'.)
Объявить Unity не поддерживается. Это не очень хороший вариант.
Хотите ли вы использовать вариант 1 или 2, в основном зависит от того, что делает ваше приложение.
источник