Как вывести сообщение через апплет Notification and jobs? [Решено]

Изображение пользователя Condor.

Вот тут захотелось мне реанимировать старый проект напоминалки и появилась у меня идея выводить сообщения через апплет Notification and jobs (чессслово хз как по-русски это переведено), ну чтобы красиво было.
Знает ли кто-нибудь как вывести сообщение через этот апплет в среде разработки QT Creator?

+3
Жюстина - 2 Январь, 2012 - 20:11
Изображение пользователя Жюстина.

Ну это не в qt точно. Это библиотечкой kde делается. У qt там только сообщение мона сделать у значка в трее а оно на родное кдешное не похоже совсем.

Могу предложить костылёк выводить процессом kdialog --title "Сообщение" --passivepopup "Hello world" )))))))))

Там и прогрессом тож управлять можно.

0
Condor - 2 Январь, 2012 - 23:04
Изображение пользователя Condor.

Жюстина, я поражен!!!
Способ очень простой и при этом он работает!
То, что доктор прописал!
Спасибо!

0
DarkneSS - 2 Январь, 2012 - 20:21
Изображение пользователя DarkneSS.

В кутях есть либа для работы с dbus. Как пользоваться, не знаю))

0
Condor - 2 Январь, 2012 - 23:07
Изображение пользователя Condor.

Ты уже догадался, да, что я задумал?
Способ Жюстины подходит, только в напоминалке надо будет переключалку организовать, через что выводить сообщения. Ну, для не кедерастов :0))
Похоже, колобка можно сделать гораздо симпатичнее :0))

0
dyug - 2 Январь, 2012 - 20:41

рыть, я так думаю, в сторону libnotify вроде так...

0
Condor - 2 Январь, 2012 - 23:53
Изображение пользователя Condor.

Я глянул, авродя как libnotify и для убунты и для кубунты есть, можно формируя deb пакет поставить libnotify зависимостями, но тогда мой колобок не сможет работать отдельным бинарником, нужна будет установка пакета обязательно.
Сейчас вывод сообщений организован через
trayIcon = new QSystemTrayIcon(this);
trayIcon->showMessage("Превед")

Что работает в любой системе, но в кедах выглядит исключительно убого.

0
Condor - 2 Январь, 2012 - 23:17
Изображение пользователя Condor.

Только не понятно как в kdialog на новую строку перейти, если надо несколько строк текста вывести.

0
Condor - 2 Январь, 2012 - 23:45
Изображение пользователя Condor.

Разобрался!
kdialog поддерживает HTML, перевод строки можно оформить как:
kdialog --title "Сообщение" --passivepopup "Одна строка<br>Вторая строка"
Более того, можно выводить изображения:
kdialog --title "Сообщение" --passivepopup "<img src="/usr/share/pixmaps/firefox.png">"
Есть огромный простор для творчества, ведь можно таким макаром выводить какую-либо полезную информацию в виде веб страницы.
kdialog поддерживает аргументы, можно кнопки да/нет ставить, ещё кучу всего делать, а если вообще попробовать скормить этой штуке код на Javascript, тогда можно теоретически вообще какую-то интерактивную хреновину сделать!
Ну или для маленьких программок делать окна настроек.
Конечно, можно и в виде обычной формы сделать всё, а так получается интеграция с системой, будет красиво выглядеть и гармонично вписываться.

0
Жюстина - 3 Январь, 2012 - 07:38
Изображение пользователя Жюстина.

Чтоб прямо всё это пользовать лучше всё таки правда через dbus потому что по крайней мере в баше пользоваться kdialog достаточно сложно. Правда обратные сообщения тож через дбас идут.

0
DarkneSS - 3 Январь, 2012 - 08:52
Изображение пользователя DarkneSS.

Плюс, это - универсальная шина, которую не использует только совсем ленивый WM/DE.

0
Condor - 3 Январь, 2012 - 11:31
Изображение пользователя Condor.

Не понял вообще как dbus использовать :0((
Но тут оказалось, что после перекомпиляции старой версии, сообщения выглядят не так плохо:

То есть старая схема работает без необходимости установки дополнительных библиотек, типа libnotify и Notify-OSD.
А вот kdialog устанавливается с системой и дополнительная установка не требуется.
Можно оставить старый вариант вывода сообщений, а при наличии kdialog (надо придумать процедуру проверки есть он или нет) выводить через него.
Таким макаром пользователи альтернативных DE увидят более-менее нормально выглядещее сообщение, а пользователи кед увидят красиво оформленое сообщение в стиле системы.

0
DarkneSS - 3 Январь, 2012 - 12:21
Изображение пользователя DarkneSS.

Похоже, что я попутал тёплое с мягким. Пример вывода через либнотифай для скайпа (через баш, получается). Должно выводится системными уведомлениями в кде/гноме/юнити.

0
Condor - 3 Январь, 2012 - 14:52
Изображение пользователя Condor.

Почти первой же строчкой
# sudo apt-get install libnotify-bin
Я хочу уйти от установки дополнительных пакетов.
Если мы используем кеды, в них есть kdialog, зачем добавлять то, что пользователю может оказаться не нужным?
Разработчики должны следить за тем, чтобы у пользователей было установлено как можно меньше пакетов, от которых зависит разрабатываемое ПО.
По этому, не стоит в угоду облегчения и ускорения разработки софта, жертвовать интересами пользователей.
Я реализовал метод, при котором колобок пытается вывести сообщение через kdialog, а если это не получается, то используется старый метод вывода, который работает во всех DE без установки дополнительных пакетов.
Там ещё по-мелочи допилить надо, и я выложу исходники.

0
DarkneSS - 3 Январь, 2012 - 17:17
Изображение пользователя DarkneSS.

Так нотифай в убунте по умолчанию стоит вроде бы. Проверил бы кто-нибуть.
У меня суся с минималки поставлена, нету нотифай))

0
Condor - 3 Январь, 2012 - 17:48
Изображение пользователя Condor.

В Ubuntu 11.10 таки стоит, специально в виртуалке поставил попробовать.
До этой версии из коробки не стояло.
В моей Kubuntu 11.10 libnotify-bin не стоит.
Тогда всё-таки не буду заморачиваться, оставлю как сейчас сделал.

0
DarkneSS - 3 Январь, 2012 - 19:58
Изображение пользователя DarkneSS.

См. ниже. Дбас-то почти везде стоит.

0
DarkneSS - 3 Январь, 2012 - 17:33
Изображение пользователя DarkneSS.

Вот, наверно, то, что я имел в виду...

0
Condor - 3 Январь, 2012 - 21:23
Изображение пользователя Condor.

Скомпилил под x86_64.
Под 32 разряда завтра, скорее всего выложу.
Выложил на сайте, исходники обновил.
С ланчпадом так и не разобрался что как :0((
По уму хотелось бы репозиторий всё-таки поднять.

0
DarkneSS - 3 Январь, 2012 - 23:04
Изображение пользователя DarkneSS.

Я в очередной раз сборку дебов не осилил... Надо будет ещё попробовать на свежую голову.

0
Condor - 3 Январь, 2012 - 23:24
Изображение пользователя Condor.

http://habrahabr.ru/blogs/linux/78094/
Даже я там слегка с описанием помог.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры