Обо мне

Моя фотография
Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!
Показаны сообщения с ярлыком osd. Показать все сообщения
Показаны сообщения с ярлыком osd. Показать все сообщения

пятница, 1 апреля 2011 г.

[Qt] Создание красивого всплывающего окошка OSD

Для своей программки LinForismatic, отображающей цитаты на рабочем столе, понадобилось выводить красивые всплывающие окошки содержащие произвольный текст и, по мере необходимости, небольшое изображение-иконку.

Под линуксом с этим проблем нет - libnotify поможет всем. Однако хотелось кросс-платформенного решения, под определение которого подпадал widget для вывода OSD из состава музыкального проигрывателя Clementine.

Немного порывшись в исходном коде проигрывателя нужные классы были найдены. Единственное чего не хватало в реализации, так это установление произвольного шрифта - что я и добавил, собственно в этот widget.

В итоге получаем:


Если кому интересно, то я выложил отдельный архив:
http://dl.dropbox.com/u/6896945/prettyosd.zip

Использовать можно следующим образом:

osd = new OSDPretty(OSDPretty::Mode_Popup);
osd->set_fading_enabled(true);
QFont font("Tahoma",11);
osd->setOsdFont(font);
osd->set_popup_duration(20000);
osd->SetMessage(name,text,QImage());
osd->show();


четверг, 24 марта 2011 г.

[Qt] Вывод текстовых сообщений посредством libnotify OSD в ubuntu

При написании своей небольшой программки LinForismatic, которая отображает произвольные цитаты через заданные промежутки времени, захотелось отображать текст посредством стандартного OSD вывода под Linux, конкретно в ubuntu.

Проблема решилась достаточно просто:
1. устанавливаем libnotify-bin
2. используем notify-send для вывода сообщения

QString program = "notify-send";
QStringList arguments;
arguments << name << text;
QProcess* myProcess = new QProcess(this);
myProcess->start(program, arguments);

Имейте ввиду, что по некоторым причинам параметр командной строки для notify-send "--expire-time=" не работает.