2011-12-24 15 views
14

cerco quattro giorni già a capire come usare QtDbus per inviare intero compreso tra due applicazioni. Ma tutti i miei tentativi fallirono. Ho trovato molti esempi su Internet, ma quando cerco di mettere insieme tutto questo non riesco a capire dove e cosa non va. Ho usato con successo il Signal & & meccanismo di slot ma non ho mai usato Dbus prima. Non riesco nemmeno a iniziare .. Qualcuno può dare un esempio completo minimale?QtDbus C++ esempio minimo

+0

vedere anche la mia domanda relativa e rispondere: http://stackoverflow.com/questions/20206376/how-do-i -extract-the-tornato-data-da-qdbusmessage-in-a-qt-dbus-call – MatthewD

+0

si prega di [modifica] la tua domanda per mostrare [ciò che avete provato finora] (http://whathaveyoutried.com). Dovresti includere un [mcve] del codice con cui stai avendo problemi, quindi possiamo provare ad aiutare con il problema specifico. Dovresti anche leggere [chiedere]. –

+0

sei serio? – Tebe

risposta

1

Ci sono diversi esempi che fanno parte della documentazione Qt, vedere: http://developer.qt.nokia.com/doc/qt-4.8/examples-dbus.html

Inoltre, ecco un tutorial che cammina attraverso facendo un semplice client dbus e server: http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial

+0

se solo fossi stato in grado di mettere insieme uno di questi esempi ... non è così semplice come lo è stato scritto – Tebe

+0

Gli esempi di Qt (il primo link) includono tutti il ​​codice sorgente read-to-compile. Suggerirei di iniziare con uno di questi, farlo compilare e lavorare da lì. In alternativa, il secondo link ti guida attraverso come crearne uno da zero. Comunque, buona fortuna! =) – wjl

+0

no, ci ho provato. Quindi sono costretto a usare i segnali, che sono molto meglio documentati e lasciano qtdbus. – Tebe

0

All'inizio è un bel casino. Ad ogni modo, inserendo alcuni registri e utilizzando dbus-monitor, è utile capire quale parte non funziona. Comunque, insieme agli esempi di Qt, potresti trovare this molto utile. È un insieme di documenti completamente spiegato. Ho trovato quelli più utili di quelli di Qt in questo caso.

16

Il miglior tutorial possibile comprendere qt-dBus ho trovato è stato questo -

KDE Tutorial on Qt-DBus

cercare di seguire il tutorial in questo ordine -

  1. Introduzione a D-Bus
  2. Creazione di interfacce D-Bus
  3. Accesso all'interfaccia DBus
  4. Creazione di tipi personalizzati per qt-DBus

Quindi seguirne il riposo quando si ha familiarità con questi.

È inoltre possibile installare questo strumento - D-Feet Aiuta molto nella comprensione/debug del codice dbus.

essere pazienti e cercare il link sopra uno per uno, ripristinare di nuovo qui con specifici dubbi, comunità vi aiuterà.

Fornire un'applicazione di esempio non ti aiuta perché non riguarda proprio il codice, riguarda il processo che devi seguire per raggiungere quel codice (la maggior parte del codice viene generata automaticamente sotto forma di classi dell'adattatore e del proxy. Hai solo bisogno di imparare come farlo).

+0

come sta rispondendo alla domanda? Oltre ai collegamenti non correlati, non hai fornito l'esempio –

+3

A volte la risposta non è la risposta, una direzione verso la risposta è. –

1

Ho anche utilizzato il tutorial menzionato da wjl (http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial), ma ho avuto problemi finché non ho realizzato i file demoifadaptor. * Sono l'interfaccia di Dbus e i file mydemo. * Sono la parte dell'applicazione che fa il lavoro. All'inizio questi ruoli non mi erano chiari (forse a causa di una certa inesperienza con Qt).

Comunque, una volta che ho creato il seguente file mydemo.c, le cose funzionavano:

#include "mydemo.h" 
#include <QObject> 
#include <iostream> 

MyDemo::MyDemo(QObject *parent) 
{ 
    // Do nothing 
} 

void MyDemo::SayBye() 
{ 
    std::cout << "Bye" << std::endl; 

} 

void MyDemo::SayHello(const QString &name, const QVariantMap &customdata) 
{ 
    std::cout << "Hello" << std::endl; 
} 

// end of file