um für ein Programm bestimmte Slot-Funktionen über den DBUS steuerbar zu machen, habe ich mich am QT-Beispiel 'pong' orientiert und in die main-Routine folgendes eingebaut:
Code: Alles auswählen
//Anwendung initialisieren
QApplication app(argc, argv);
app.setApplicationName("Program");
// DBus initialisieren
QDBusConnection::sessionBus().registerService("de.domain.program");
// Hauptfenster definieren
ProgramWindow win;
win.show();
app.setQuitOnLastWindowClosed(true);
// DBus verbinden
QDBusConnection::sessionBus().registerObject("/", win, QDBusConnection::ExportAllSlots);
return app.exec();
In der Klasse ProgramWindow : public QMainWindow , protected Ui_MainWindow sind zwei Slot-Funktionen definiert (public).
Nun entsteht zwar im DBus ein Eintrag für das Programm, jedoch tauchen darunter nicht die Slot-Funktionen der Klasse ProgramWindow auf, sondern lauter generische QT-Funktionen zur Steuerung von Fenstergröße, Fenstertitel etc.
Was mache ich falsch? Ich habe viel herum experimentiert und es läuft immer auf das selbe hinaus.