Qt使用QString调用方法

时间:2009-11-18 21:46:47

标签: qt qt4 dbus

我在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 个答案:

答案 0 :(得分:1)

我用它来调用具有不同类型参数的方法:

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);