crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDBus, сигнал и type="a{sv}"
RazrFalcon
  опции профиля:
сообщение 1.6.2011, 18:30
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Нужно подконектится к сигналу вида:
    <signal name="action_complete">
      <arg type="s" name="action" />
      <arg type="a{sv}" name="values" />
    </signal>

Гугл говорит, что a{sv} это наше QMap<QString, QVariant> или QVariantMap.

Конектюсь так:
  QDBusConnection bus = QDBusConnection::sessionBus();
  QDBusInterface *interface = new QDBusInterface("org.freedesktop.Name",
                                                 "/org/freedesktop/Name",
                                                 "org.freedesktop.Name",
                                                 bus,
                                                 this);


  QObject::connect(interface,SIGNAL(action_started(QString,QMap<QString, QVariant>)),
                   this,SLOT(call(QString,QMap<QString, QVariant>)));

Слот приема:
void MainWindow::call(const QString &rep1, const QMap<QString, QVariant> &rep2)
{
  qDebug()<<rep1<<rep2;
}

И получаю:
Object::connect: No such signal org::freedesktop::Name::action_started(QString,QMap<QString, QVariant>)
Object::connect:  (receiver name: 'MainWindow')
The program has unexpectedly finished.

Хотя к сигналу вида:
    <signal name="action_started">
      <arg type="s" name="action" />
      <arg type="s" name="name" />
    </signal>
Ака QString,QString: конектится нормально и сигналы я все получаю.

В чем бида? В инете информации по dbus вообще 0.

Сообщение отредактировал RazrFalcon - 1.6.2011, 18:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 2.6.2011, 13:44
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


На форум всего 1-а тема про DBus. Неужели никто с ним не работал?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 2.6.2011, 17:22
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(RazrFalcon @ 1.6.2011, 19:30) *
В инете информации по dbus вообще 0.

Ты сразу спецификации читай: http://dbus.freedesktop.org/doc/dbus-specification.html

Попробуй как вариант: QList< QMap<QString, QVariant> >
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.6.2011, 17:25
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


видимо не популярен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 2.6.2011, 19:24
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Ни в какую....
Бросил я эту затею. Теперь просто QString парсю, из другого сигнала. Благо дело автор сервера дописал его для меня :lol:

У Qt какая то бага с этой сигнатурой. Особенно если python посылает.

Цитата
видимо не популярен

Linux only. По сути. Хотя серьезно используется только в KDE.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 0:29