dbus-send to QDBus 程序示例
Posted
技术标签:
【中文标题】dbus-send to QDBus 程序示例【英文标题】:dbus-send to QDBus program example 【发布时间】:2015-12-25 18:24:03 【问题描述】:我尝试通过 dbus-send 向这个小示例程序发送消息。 但是没有收到:
dbus-send --session --type=method_call / dbustester.test.slot_foo
返回码为 0,控制台不打印消息。
以下是源代码。
main.cpp
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtDBus/QtDBus>
#include <Example.h>
int main(int argc, char **argv)
QCoreApplication app(argc, argv);
Example *e = new Example();
e->setupDBus();
return app.exec();
例子.h
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtDBus/QtDBus>
class Example : public QObject
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "dbustester.test")
public:
Example(QObject* parent = NULL) :
QObject(parent)
void setupDBus()
QDBusConnection session = QDBusConnection::sessionBus();
if (!session.isConnected())
qFatal("Cannot connect to the D-Bus session bus.");
return;
session.connect("", "/", "dbustester.test", "slot_foo", this, SLOT(slot_foo(void)));
if(!session.registerObject("/", this, QDBusConnection::ExportScriptableContents))
qFatal("Cannot registerObject.");
return;
if(!session.registerService("dbustester.test"))
qFatal("Cannot registerObject.");
return;
public slots:
Q_SCRIPTABLE void slot_foo()
qDebug() << "request received";
;
构建:
qmake -project
echo "CONFIG += qdbus" >> *.pro
qmake
【问题讨论】:
【参考方案1】:我在写问题时找到了答案,但我还是写了这个问题。有些人可能会觉得它很有用。
dbus-send --session --dest=dbustester.test --type=method_call / dbustester.test.slot_foo
我忘记了 --dest 参数。 :>
【讨论】:
以上是关于dbus-send to QDBus 程序示例的主要内容,如果未能解决你的问题,请参考以下文章