그래서 내 인생에서 내 개체를 세션 버스에 연결할 수 없습니다. 그래서, "my_obj"의 "wakeup"을 dBus 신호 "profileChanged"에 연결하려고합니다. 그러나 qbusviewer를 통해이 신호가 방출되었다고 확신 할지라도 "wakeup"은 실행되지 않습니다. 여기 내 코드 중 일부이다dbus 세션 연결 : dbus 신호를 qt 슬롯에 연결하는 방법, 어떻게 수행 할 수 있습니까?
const QString service = "org.kde.Solid.PowerManagement";
const QString path = "/org/kde/Solid/PowerManagement";
const QString interface = "org.kde.Solid.PowerManagement";
QDBusConnection bus = QDBusConnection::sessionBus();
if (!bus.isConnected())
{
qDebug() << "Can't connect to the D-Bus session bus.\n";
}
class my_wake_up_class : public QObject
{
Q_OBJECT
public slots:
void wakeup(QString); //Does not run!
};
my_wake_up_class my_obj;
bool conn = bus.connect(service, path, interface, "profileChanged", &my_obj, SLOT(wakeup(QString)));
if (!conn) qDebug() << "not connected";
qDBus은 "무효 (QString)" "profileChanged는"양식을 가지고 있음을 보여주고 난 어떤 오류도 경고를받지 못했습니다. 다음은 특정 신호에 대한 qdbus 출력입니다.
signal void org.kde.Solid.PowerManagement.profileChanged(QString)
이렇게 생각해 봅니다. 나는 어떤 문서 안에 깊숙히 묻혀있는 몇 분의 세부 사항을 놓치고 있다고 확신한다. 아무도 내가 어디로 잘못 가고 있는지 알 수 없을까?