考虑下面在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组件的属性。有什么方法可以在不创建实例的情况下读取默认/只读属性?
也欢迎您提出替代解决方案的建议。