2017-01-29 10 views
8

Я хочу, чтобы мое приложение GTK иметь значок состояния в системном трее, я получил это работает довольно хорошо, используя StatusIcon, однако это было устаревшим:GTK + 3 StatusIcon замена

gtk_status_icon_new является устаревшим с версии 3.14 и не должны использоваться во вновь написанном коде.

Используйте уведомления

документация говорит: «Использование уведомлений», но я понятия не имею, что это на самом деле означает. Я интерпретирую это как «использование уведомлений на рабочем столе», но, насколько я могу судить, это совершенно другое назначение. Я хочу всегда видимый значок в системном трее, а не временное всплывающее уведомление. Несмотря на это, я не могу найти ничего другого, что, казалось бы, было бы тем, что подразумевается под «Уведомлениями».

Существует ли новая замена для GtkStatusIcon, которая предоставляет значок в системном трее, с поддержкой приема сигналов щелчка мыши/прокрутки и отображения всплывающих меню?

ответ

4

К сожалению, да, они относятся к уведомлениям на рабочем столе. Если вы все еще хотите использовать значки в системном трее, продолжайте использовать GtkStatusIcon; просто отметьте, что скорее всего он скоро будет удален. (Дело в том, что у большего количества вещей есть уведомления о рабочем столе, чем статусные значки, но я уверен, что есть и другие причины. GTK +, вероятно, не должен иметь дело с подобными настольными средами такими вещами ... Ничего не мешает кому-либо сделать GtkStatusIcon заменяет свои собственные, но пока никто не сделал этого.)

+0

Неутешительно, я бы надеялся, что GTK сделает все возможное, чтобы оставаться более универсальным, чем это. Думаю, я просто продолжу использовать GtkStatusIcon и надеюсь, что альтернатива возникнет до ее удаления. Спасибо, что разобрался. – Tomha

+0

Он не собирается удаляться в GTK + 3, но он может быть удален в GTK + 4, который не поддерживает обратную совместимость. Таким образом, вам не придется беспокоиться, пока вы не перевернете свой код, когда появится эта версия GTK +. Он может быть удален в более поздней версии, что это; Я не знаю. Что касается универсальности, GTK + также не предоставляет уведомлений! Для этого вам нужно перейти в отдельную библиотеку, например libnotify. – andlabs

+0

Это правда об уведомлениях, я в первую очередь использовал GTK с Python, поэтому я привык импортировать уведомления вместе с GTK из GI API, и это не произошло со мной. Мне будет интересно посмотреть, как это будет обсуждаться в будущих версиях GTK, хотя при условии, что я смогу поддерживать его работу с GTK + 3, пока что все будет хорошо. – Tomha