使用 Qt 未收到正确的 D-Bus 回复
Not receiving correct D-Bus reply with Qt
我想在 Gnome 上获得空闲时间。在终端中输入以下命令时有效:
dbus-send --print-reply --dest=org.gnome.Mutter.IdleMonitor /org/gnome/Mutter/IdleMonitor/Core org.gnome.Mutter.IdleMonitor.GetIdletime
我是 Qt D-Bus 的新手,不确定如何使用 QDBusInterface 获得相同的结果。我有以下代码:
QDBusInterface interface( "org.gnome.Mutter.IdleMonitor",
"/org/gnome/Mutter/IdleMonitor/Core",
"org.gnome.Mutter.IdleMonitor");
QDBusReply<int> reply = interface.call( "GetIdletime");
std::cout << "Reply: " << reply.value() << '\n';
每次都打印 0。如何获得正确的空闲时间?
我可以通过将 QDBusReply 的类型更改为 qulonglong
来实现此功能。工作代码是:
QDBusInterface interface( "org.gnome.Mutter.IdleMonitor",
"/org/gnome/Mutter/IdleMonitor/Core",
"org.gnome.Mutter.IdleMonitor");
QDBusReply<qulonglong> reply = interface.call("GetIdletime");
我想在 Gnome 上获得空闲时间。在终端中输入以下命令时有效:
dbus-send --print-reply --dest=org.gnome.Mutter.IdleMonitor /org/gnome/Mutter/IdleMonitor/Core org.gnome.Mutter.IdleMonitor.GetIdletime
我是 Qt D-Bus 的新手,不确定如何使用 QDBusInterface 获得相同的结果。我有以下代码:
QDBusInterface interface( "org.gnome.Mutter.IdleMonitor",
"/org/gnome/Mutter/IdleMonitor/Core",
"org.gnome.Mutter.IdleMonitor");
QDBusReply<int> reply = interface.call( "GetIdletime");
std::cout << "Reply: " << reply.value() << '\n';
每次都打印 0。如何获得正确的空闲时间?
我可以通过将 QDBusReply 的类型更改为 qulonglong
来实现此功能。工作代码是:
QDBusInterface interface( "org.gnome.Mutter.IdleMonitor",
"/org/gnome/Mutter/IdleMonitor/Core",
"org.gnome.Mutter.IdleMonitor");
QDBusReply<qulonglong> reply = interface.call("GetIdletime");