Russian Qt Forum
Ноябрь 24, 2024, 23:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Своя картинка в DBus notification [solved]  (Прочитано 6479 раз)
NicK
Гость
« : Апрель 19, 2011, 15:22 »

Хочу выводить сообщения через DBus уведомления. Вот код:

    
Код
C++ (Qt)
QDBusInterface dbusNotification("org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications", QDBusConnection::sessionBus());
        QString title = "messageTitle";
        QString msg = "MessageText";
        QVariantList args;
        args << QString("ProgramName");
        args << QVariant(QVariant::UInt);
        /*args << QVariant("/home/username/icon.png");*/ //Так работает. Но так не надо.
        args << QVariant(":/newPrefix/icon.png");              //Так не работает. Как сюда засунуть свою картинку?
        args << QString(title);
        args << QString(msg);
        args << QStringList();
        args << QVariantMap();
        args << 1000;
        dbusNotification.callWithArgumentList(QDBus::AutoDetect, "Notify", args);

В результате в уведомлении отображается заголовок и текст, но сообщение выводится без картинки.((
Для картинки, находящейся в файловой системе, все отображается нормально.
Каким образом засунуть картинку из ресурсов в уведомление?
« Последнее редактирование: Апрель 20, 2011, 14:48 от NicK » Записан
Командор
Гость
« Ответ #1 : Апрель 19, 2011, 17:16 »

По ходу никак, ведь сообщение выводится сторонней службой, а обращение к ресурсам через ":/" понимает только сама программа.
Записан
NicK
Гость
« Ответ #2 : Апрель 19, 2011, 23:14 »

up
Записан
mutineer
Гость
« Ответ #3 : Апрель 19, 2011, 23:25 »

up
Тебе уже ответили. Ресурсы находятся внутри твоего приложения, а по DBus ты отправляешь сообщение другому приложению, у которого к этим ресурсам доступа нет. юзай внешний файл
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Апрель 20, 2011, 03:08 »

Desktop Notifications Specification
Записан
NicK
Гость
« Ответ #5 : Апрель 20, 2011, 08:16 »

up
Тебе уже ответили. Ресурсы находятся внутри твоего приложения, а по DBus ты отправляешь сообщение другому приложению, у которого к этим ресурсам доступа нет. юзай внешний файл

Ничего глупее и представить себе не могу. Вы вообще представляете что значит для каждого уведомления сохранять файл на диск дергать оттуда иконку и удалять ее после показа сообщения? А если у меня 100500 разных сообщений и  к каждому нужна своя иконка? Вы действительно думаете, что все KDE и Qt приложения, использующие уведомления через DBus, отображают иконки из внешних файлов?

Всем спасибо. Зачем писать такой бред? Если я не разбираюсь в каком-либо вопросе - лучше промолчу, чего и вам желаю.
Просьба в будущем воздерживаться от подобных "советов".

Видимо, все-таки придется лезть, например, на qt-apps и копать исходники тех, кто знает как это делается.)
Записан
SeverusSnape
Гость
« Ответ #6 : Апрель 20, 2011, 08:47 »

По ссылке выше мог бы и прочитать, прежде чем оскорблять людей.

Раздел Images

Цитировать
Images
Images may be placed in the notification, but this should be done with caution. The image should never exceed 200x100, but this should be thought of as a maximum size. Images should always have alternative text provided through the alt="..." attribute.

Image data cannot be embedded in the message itself. Images referenced must always be local files.

Implementations are not required to support images.
Записан
mutineer
Гость
« Ответ #7 : Апрель 20, 2011, 11:18 »

2 Nick
Так читай спеки, раз людей слушать не хочешь.

Цитировать
для каждого уведомления сохранять файл на диск дергать оттуда иконку и удалять ее после показа сообщения
Зачем так? При установке или первом старте проги положи куда-нить иконку и дергай ее оттуда. Удалять ее каждый раз не надо. Если покопаешься в системных файлах, то как раз и найдешь там иконки для уведомлений разных приложений

Цитировать
Если я не разбираюсь в каком-либо вопросе - лучше промолчу, чего и вам желаю.
По твоему сообщению не похоже, что ты следуешь этому правилу...
« Последнее редактирование: Апрель 20, 2011, 11:20 от mutineer » Записан
NicK
Гость
« Ответ #8 : Апрель 20, 2011, 14:48 »

По ссылке выше мог бы и прочитать, прежде чем оскорблять людей.

Раздел Images

Цитировать
Images
Images may be placed in the notification, but this should be done with caution. The image should never exceed 200x100, but this should be thought of as a maximum size. Images should always have alternative text provided through the alt="..." attribute.

Image data cannot be embedded in the message itself. Images referenced must always be local files.

Implementations are not required to support images.


Спасибо SeverusSnape за единственный ценный пост Улыбающийся
Пример решения задачи нашел здесь http://code.google.com/p/snorenotify/source/browse/trunk/src/notify.h?r=72

Тема закрыта.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.074 секунд. Запросов: 23.