su -
yum install qt5-qdbusviewer
qdbusviewer-qt5
.pro .... QT += core gui dbus
#ifndef RECEIVER_H
#define RECEIVER_H
#include
namespace Ui {
class Receiver;
}
class Receiver : public QMainWindow
{
Q_OBJECT
Q_CLASSINFO ("D-Bus Interface",
"org.example.ReceiverInterface")
public:
explicit Receiver(QWidget *parent = 0);
~Receiver();
public slots:
Q_SCRIPTABLE void hello (QString s);
Q_SCRIPTABLE QString hello2 (QString s);
private:
Ui::Receiver *ui;
};
#endif // RECEIVER_H
#include "receiver.h"
#include "ui_receiver.h"
#include
Receiver::Receiver(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Receiver)
{
ui->setupUi(this);
QDBusConnection bus = QDBusConnection::sessionBus ();
if (bus.isConnected())
if (bus.registerService ("org.example.receiver"))
if (bus.registerObject ("/", this,
QDBusConnection::ExportAllSlots))
ui->textEdit->append ("Ready");
}
Receiver::~Receiver()
{
delete ui;
}
void Receiver::hello (QString s)
{
ui->textEdit->append ("Hello: " + s);
}
QString Receiver::hello2 (QString s)
{
ui->textEdit->append ("Hello2: " + s);
return "Answer from Receiver";
}
#include
#include
void Sender::on_actionRun_triggered()
{
QDBusConnection bus = QDBusConnection::sessionBus();
QDBusInterface ifc ("org.example.receiver", "/", "", bus);
ifc.call ("hello", "Hello from Qt");
}