Qt 中有一个属性系统。一方面可以使用子类从D-Bus公开属性,另一方面可以使用 Qt QML 公开属性。对于 D-Bus 服务接口的属性和信号,可以由元对象编译器自动完成。对于 QML 的信号、槽和属性,它也可以由 MOC 自动完成。QDBusAbstractInterface
QObject
但是问题出现了:QML 需要以小写字母开头的属性和方法(信号或插槽)名称,而 Network Manager DBus API 导出对象的所有成员标识符都以大写字母开头(有时使用小写字母,比如org.freedesktop.NetworkManager.state()
方法)。但我想QDBusAbstractInterface
直接在 QML 代码中使用这样的派生对象。
有没有办法自动将方法和属性的名称转换为一种形式QtQml
和另一种形式QDBus
?
如何分别为 NetworkManager 对象的所有属性发出信号的示例。
补充:根据问题,KDE NetworkManager Qt 并没有太大用处,因为在QML 中没有要使用QObject-s 导出的属性。