【问题标题】:Qt invokeMethod with QString带有 QString 的 Qt 调用方法
【发布时间】:2010-12-18 01:47:43
【问题描述】:

我有一个运行在 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"

我如何做到这一点?

【问题讨论】:

  • 您能解释一下您没有正确收到参数的原因吗?

标签: qt qt4 dbus


【解决方案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);

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多