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