C ++访问QML组件属性而无需创建组件实例

时间:2018-07-23 15:38:34

标签: c++ qt qml qtquick2

考虑下面在Test.qml中定义的QML示例组件

Item {
    readonly property string name: "Test Component"
}

我正在从C ++加载组件

QQmlComponent comp(&engine, QUrl("file:/path/to/Test.qml"));

是否有任何方法可以访问只读属性name,而无需通过调用comp.create(...)创建实例?我之所以这样问是因为我想使用QML组件来实现动态插件。每个插件应代表一个与项目相关的接口。这些“插件” QML文件将包含在一个文件夹中,并应作为插件/组件名称的列表显示。然后,用户应该能够选择使用哪个插件(并由应用程序实例化)。

由于每个“插件”也将影响基础C ++模型的构建方式,并且只能同时实例化一个“插件”,因此,为获得名称而创建每个实例都将产生大量开销,我试图避免。

不幸的是,property(...)的{​​{1}}方法仅引用组件对象,而不引用基础QML组件的属性。有什么方法可以在不创建实例的情况下读取默认/只读属性?

也欢迎您提出替代解决方案的建议。

0 个答案:

没有答案