LINUX.ORG.RU

qtdbus


0

0

добрый день. срочно потребовалось использовать межпроцесное взаимодействие в проекте, решил использовать dbus. раньше с ним не работал. тестовый пример брал из этого мануала http://symmetrica.net/qt4/lesson6.htm

все нормально собирается, ни сервер, ни клиент ошибок не выдают, но при попытке отправки сообщеия не происходит вызова удаленного метода. dbus-monitor говорит следующее

[quote] method call sender=:1.61 -> dest=DBus.Manager.QClipboard serial=7 path=/QClipboard; interface=DBus.Manager.QClipboard; member=setContent string «test_str» error sender=:1.60 -> dest=:1.61 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=7 string «No such method 'setContent' in interface 'DBus.Manager.QClipboard' at object path '/QClipboard' (signature 's')» [/quote]

почему то не видит удаленного метода setContent. уже копаю пару часов - ничего. примеры, идущие со статьей ведут себя точно так же. статья 2008 года, может что изменилось?

подскажите пожалуйста, кто может

★★★★★

Его там действительно нет, можешь посмотреть в qdbusviewer Работать со свойствами нужно через org.freedesktop.DBus.Properties, а если тебе нужно, чтобы были видны методы, то они должны быть объявлены как слоты:

public slots:
     Q_INVOKABLE QString content()
     {
	    printf("Запрос содержимого буфера обмена\n");
	    return cb->text();
     }
     Q_INVOKABLE void setContent(const QString &newContent)
     {
        printf("Содержимое буфера обмена изменено\n");
        cb->setText(newContent);
     }
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.