2

我想做 dbus-send 从 shell/console 到 qt 应用程序。

这是一个简单的 QT 应用程序的代码

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtCore>
#include <QtDBus>
#include <QDBusConnection>
#include <QDebug>


MainWindow::~MainWindow()
{
    delete ui;
}

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    bool ret = QDBusConnection::sessionBus().connect(
                "MyHome", //service
                "/", //path
                "com.mydomain.mcp", //interface
                "usb", //name
                this, //receiver
                SLOT(messageSlot(QString)));

}

void MainWindow::messageSlot(const QString &t1)
{
    qDebug("%s", QString("%1").arg(t1).toUtf8().data());
}

从终端,我发送这个命令

dbus-send --session --print-reply --reply-timeout=2000 --type=method_call / com.mydomain.mcp.usb string:'a'

我收到此错误:接口“com.mydomain.mcp”上带有签名“s”的方法“usb”不存在

我究竟做错了什么?

谢谢

4

0 回答 0