2011-12-24 24 views
14

Intento cuatro días para comprender cómo usar QtDbus para enviar un número entero entre dos aplicaciones. Pero todos mis intentos fallaron. Encontré muchos ejemplos en Internet, pero cuando intento unir todo esto, no puedo entender dónde y qué está yendo mal. Utilicé con éxito el Signal & & Mecanismo de ranura pero nunca he usado Dbus. No puedo empezar ... ¿Alguien puede dar un ejemplo mínimo?QtDbus C++ ejemplo mínimo

+0

También vea mi pregunta ya responder: http://stackoverflow.com/questions/20206376/how-do-i -extract-the-returned-data-from-qdbusmessage-in-a-qt-dbus-call – MatthewD

+0

Por favor, [edite] su pregunta para mostrar [lo que ha intentado hasta ahora] (http://whathaveyoutried.com). Debe incluir un [mcve] del código con el que tiene problemas, luego podemos intentar ayudarlo con el problema específico. También deberías leer [preguntar]. –

+0

¿Hablas en serio? – Tebe

Respuesta

1

Hay varios ejemplos que son parte de la documentación de Qt, ver: http://developer.qt.nokia.com/doc/qt-4.8/examples-dbus.html

Además, aquí es un tutorial que camina a través de hacer un simple cliente dbus y servidor: http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial

+0

si solo hubiera podido juntar uno de este ejemplo ... no es tan simple como que está escrito – Tebe

+0

Los ejemplos de Qt (el primer enlace) incluyen código fuente de lectura a compilación. Sugiero comenzar con uno de esos, hacer que compile y trabajar desde allí. Alternativamente, el segundo enlace le guiará por cómo hacer uno desde cero. ¡En fin, buena suerte! =) – wjl

+0

no, lo intenté. Así que estoy obligado a usar señales, que están mucho mejor documentadas y dejar qtdbus. – Tebe

0

Al principio es un desastre. De todos modos, al colocar algunos registros y usar dbus-monitor debería ayudarlo a comprender qué parte está fallando. De todos modos, junto con ejemplos de Qt, puede encontrar this muy útil. Es un conjunto de documentos completamente explicados. Los encontré más útiles que los de Qt en este caso.

16

El mejor tutorial posible entender qt-dbus que pude encontrar fue esto -

KDE Tutorial on Qt-DBus

tratar de seguir el tutorial en este orden -

  1. Introducción a D-Bus
  2. Creación de interfaces D-Bus
  3. Acceso a la interfaz DBus
  4. Creación de tipos personalizados para qt-DBus

Luego siga el resto cuando se sienta cómodo con estos.

También puede instalar esta herramienta - D-Feet Ayuda mucho en la comprensión/depuración del código dbus.

Sea paciente y pruebe los enlaces anteriores uno por uno, vuelva aquí con dudas específicas, la comunidad lo ayudará.

Ofrecerle una aplicación de muestra no lo ayudará porque realmente no se trata del código, se trata del proceso que debe seguir para llegar a ese código (la mayoría del código se genera automáticamente en forma de clases de adaptador y proxy). Solo necesitas aprender a hacerlo).

+0

¿Cómo responde esto la pregunta? Además de los enlaces no relacionados, no proporcionó el ejemplo –

+3

A veces la respuesta no es la respuesta, es una dirección hacia la respuesta. –

1

También utilicé el tutorial mencionado por wjl (http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial), pero tuve problemas hasta que me di cuenta de que los archivos demoifadaptor. * Son la interfaz de Dbus y los archivos mydemo. * Son la parte de la aplicación que hace el trabajo. Esos roles no fueron claros para mí al principio (tal vez debido a la falta de experiencia con Qt).

De todos modos, una vez que he creado el siguiente archivo de mydemo.c, las cosas funcionaron:

#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 
Cuestiones relacionadas