Qt invokeMethod с QString - PullRequest
       22

Qt invokeMethod с QString

2 голосов
/ 19 ноября 2009

У меня есть демон, работающий на DBus, который предлагает сервис для запуска приложений. Я хочу передать две строки этому сервисному API (appPath, appArgs). Я зарегистрировал службу и путь к объекту с помощью DBus.

Мой сервисный метод вызывается, но я не получаю аргументы правильно () в моем сервисе. Вот как я делаю это из моего класса адаптера,

call(QDBus::Block, QLatin1String("LaunchApp"), appPath, appArgs);

Вот так выглядит мой интерфейс.

"  <interface name=\"com.company.AppLauncher\" >\n"
"    <method name=\"LaunchApp\">\n"
"    <arg name=\"appPath\" type=\"s\" direction=\"in\"/>\n"
"    <arg name=\"appArgs\" type=\"s\" direction=\"in\"/>\n"
"    </method> \n"

Как мне этого добиться?

1 Ответ

1 голос
/ 10 мая 2011

Я использую это для вызова методов с разными типами аргументов:

QString appPath("somepath");
QString appArgs("somargs");

QList<QVariant> argumentList;
QVariant argument;
argument.setValue(appPath);
argumentList.append(argument);
argument.setValue(appArgs);
argumentList.append(argument);

callWithArgumentList(QDBus::Block,"LaunchApp",argumentList);
...