Cómo usar los enlaces Qt-Dbus sin bloquear el hilo principal

Mi objetivo es crear una biblioteca usando elEnlaces DBus de Qt.

Traté de crear una aplicación Qt sin iniciar elQEventLoop (proporcionado por elQCoreApplication clase) en el hilo principal.

Aquí hay una muestra de aplicación minimalista, que funciona bien con la versión QT-4.6.2 pero bloquea la introspección con QT-4.8 o superior.

DBusHandler.hpp

#pragma once
#include <iostream>
#include <QtCore/QThread>
#include <QtCore/QtCore>
#include <QtDBus/QDBusInterface>

class DBusHandler : public QThread
{
    Q_OBJECT;

private:     
    void run(void)
    {
        QDBusConnection connection = QDBusConnection::sessionBus();

        connection.registerService("my.qdbus.example");
        connection.registerObject("/", this, QDBusConnection::ExportAllSlots);
        exec();
    }

public:
    DBusHandler(void) {}
    virtual ~DBusHandler(void) {}

    void stop(void)
    {
        QDBusConnection connection = QDBusConnection::sessionBus();

        connection.unregisterObject("/");
        connection.unregisterService("my.qdbus.example");
        connection.disconnectFromBus(connection.name());
        QThread::quit();
    }

public slots:
    void remoteCall(QByteArray message)
    {
        std::cout << "Message size: " << message.size() << std::endl;
    }
};

main.cpp

#include "DBusHandler.hpp"

int main(int ac, char **av)
{
    QCoreApplication app(ac, av);
    DBusHandler handler;

    handler.moveToThread(&handler);

    handler.start();
    while (not handler.isRunning());

    // app.exec();
    sleep(10); // Gives time to call using the command line: "qdbus my.qdbus.example / local.DBusHandler.remoteCall a_message"

    handler.stop();
    while (handler.isRunning());
}

Como puedes ver en elmain.cpp archivo,app.exec() está comentado, pero hace que la aplicación funcione bien en QT-4.8 o versiones superiores (5.3.0).

Mi pregunta es la siguiente: ¿Es posible usar las llamadas de enlaces DBus de Qt?app.exec() en unotro hilo que el principal, en Qt-4.8 o 5.3?

Respuestas a la pregunta(1)

Su respuesta a la pregunta