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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как распарсить reply от DBus?[solved]  (Прочитано 5921 раз)
semlanik
Гость
« : Февраль 02, 2010, 17:22 »

Делаю запрос к dbus. В реплае получаю следующую штуку:
Код:
$ dbus-monitor --session
...
   array [  
          array [
                string "value"
                string "value"
                string "value"
                  ]                                                                                                                                            
   ]
...
как такого рода структуру дернуть (сохранив ее желательно) из QDbusMessage::arguments()?
« Последнее редактирование: Февраль 02, 2010, 19:11 от semlanik » Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #1 : Февраль 02, 2010, 17:37 »

по хорошему надо искать парсер и прочие прибамбасы в дебрях самого DBus.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Rcus
Гость
« Ответ #2 : Февраль 02, 2010, 17:44 »

В справке по QDBusArgument уже есть пример десериализации пользовательских типов.
Записан
semlanik
Гость
« Ответ #3 : Февраль 02, 2010, 17:49 »

а не пошлете меня туда? чет я в асистенсе не могу найти самплы с ним связанные.
Записан
semlanik
Гость
« Ответ #4 : Февраль 02, 2010, 17:52 »

в общем-то сообразил про что вы наверно
сейчас буду пытать спасибо )
Записан
semlanik
Гость
« Ответ #5 : Февраль 02, 2010, 18:11 »

Может быть у кого-то есть готовый рецепт?
Записан
BRE
Гость
« Ответ #6 : Февраль 02, 2010, 18:50 »

Скорее всего он пытается вернуть QVariantList, в котором лежит QStringList.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #7 : Февраль 02, 2010, 18:56 »

Может быть у кого-то есть готовый рецепт?
См. законы Мерфи:
- Если что-то не получается, прочти наконец инструкцию....
пс. самый клевый рецепт в твоей ситуации.....
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
semlanik
Гость
« Ответ #8 : Февраль 02, 2010, 19:10 »

О боже... система была примерно такой: Игла в яйце, яйцо в утке, утка в зайце, заяц в а??е! Победили вот так:
Код:
        QList<QVariant> list;
        QDBusArgument arg;
        QDBusMessage response;
        ...
        list=response.arguments();
        arg=list.at(0).value<QDBusArgument>();

        arg.beginArray();
        while ( !arg.atEnd() )
        {
            QStringList element;
            arg >> element;
            qDebug()<<"Element:"<<element;
        }
        arg.endArray();

Всем спасибо )

изменено: цензура
« Последнее редактирование: Февраль 03, 2010, 16:42 от Константин » Записан
ритт
Гость
« Ответ #9 : Февраль 03, 2010, 16:45 »

а не проще

Код:
       QList<QVariant> list;
        QDBusArgument arg;
        QDBusMessage response;
        ...
        list=response.arguments();
        arg=list.at(0).value<QDBusArgument>();

        QList<QStringList> res;
        arg >> res;

??
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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