2017-03-11 4 views
0

Ich muss das Signal von QDBus fangen und ich bin neu für dieses und weiß nicht, wie man das Signal von QDbus fängt. Bitte erläutern Sie mit Beispielen, damit ich verstehen kann.Dbus Signale und Slots in Qt

Antwort

1

Es gibt ein paar Optionen:

  1. Verwenden QDBusConnection::connect()
  2. Erstellen ein generisches QDBusInterface Objekt für die Remote-Schnittstelle und verwenden Sie es als Absender in einem normalen QObject::connect() withn SIGNAL/SLOT Makros
  3. ein spezifischen generieren Schnittstellenobjekt aus den XML-Introspektionsdaten des Dienstes unter Verwendung des qdbusxml2cpp Codegenerators

Die D-Bus Chat example verwendet sowohl (1) als auch (3) und hat (2) in einer kommentierten Zeile als Referenz.

+0

Ja, aber ich habe ein Signal mit Argumenten wie newSignal (Objektpfad, Dict von {String, Dict von {String, Variant}}). Hier kann ich nicht sagen, wie man dieses Signal mit diesen Argumenten deklariert, Können Sie mich dazu führen – sathish

+0

Sie könnten versuchen, eine 'QVariantMap' als zweites Argument oder eine' QMap '. –

+0

Ich habe Steckplatz in einer Klasse wie unter öffentlichen Steckplätzen deklariert: int Devicefound (QDBusObjectPath Pfad, QMap Karte) { qDebug() << "GERÄTE GEFUNDEN >>>>>>>", Pfad; } – sathish

Verwandte Themen