公开子属性时出现 QML 错误
QML error on exposing child properties
我有一个QML对象定义如下:
Item {
property alias source: a.internalImage.source
property alias text: a.internalText.text
Column {
id: a
Image {
id: internalImage
}
Text {
id: internalText
width: internalImage.width
}
}
}
此操作失败,并显示:Invalid alias target location: internalImage
。
但是,如果我这样做:
Column {
property alias source: internalImage.source
property alias text: internalText.text
Image {
id: internalImage
}
Text {
id: internalText
width: internalImage.width
}
}
为什么?
从文档中可以看出,Component
的范围是:
组件内对象 ID 和组件根元素属性的联合
因此,不允许外部元素通过id
链访问内部元素中包含的id
。
另一方面,如果您通过一组变量显式导出一堆参数,则这些值/引用可以自由地提供给外部组件。
我确实通过创建一个简单的属性和一个 changeListener 解决了这个问题
Item {
property string source: a.internalImage.source
property string text: a.internalText.text
onSourceChanged: a.internalImage.source = source
onTextChanged: a.internalText.text
}
我希望这有帮助
相关文章:
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 当结构位于单独的头文件中时'unregistered datatype'在 QML 中出现Q_GADGET错误
- 如何将 QML 中的引用错误解析为 c++ 对象
- QML 引用错误 - <thing> 在 C++/QML 集成期间未定义
- 运行 QML 时出现"未知方法参数类型"错误
- QT Quick (QML) assemble mac-.bundle -> 不是使用 macdeployqt 时的动态库错误
- 发送 QML 项目列表C++类连接到 QML :M16 错误
- 将模块连接到 QML C++ - 引用错误: <blank> 未定义
- QML/real和C++/float之间的Qt类型错误
- QML[未定义]错误
- 公开子属性时出现 QML 错误
- QML TableView+PostgreSQL数据库错误
- 项目错误:未知模块(s)在QT: qml快速
- 参考错误时,使用c++和qml的诺基亚N9
- {Qt5.0.2/QML/QtQuick2.0/ c++}示例项目运行时没有错误
- QML 列表视图和分段错误
- QML 错误:未安装 qrc:/Main.qml:24 模块"system"
- 错误:未知模块(s)在QT: qml快速QT Creator
- Qt资源中QML文件的“找不到文件”错误
- QML 和C++属性 - 引用错误:找不到变量