【发布时间】:2018-04-09 08:45:51
【问题描述】:
我正在尝试为选项卡元素中包含的组件创建别名,但没有成功。即使这个小例子也不起作用:
Tab
{
id: tab1
title:'tab1'
property alias tab1Text: test.text
Text {
id:test
text:'Test123'
}
}
我收到了这个错误:
property alias tab1Text: test.text
谁能告诉我问题出在哪里,我该如何解决?
【问题讨论】:
-
您的措辞是正确的:它是 Tab 元素内的 组件。 组件 不是真正的实例,它们类似于实例的原型/工厂。由于没有真实的实例,因此您不能将组件内的某些内容指定为别名的目标。
-
好的,如果我明白了。 (1) 我必须将我的选项卡数据包含在 Item 中以获取别名。 (2) 我必须使用 active=true 强制加载选项卡。这是正确的吗 ? (从单个测试来看,它似乎有效,但我希望有正确/最佳/首选的方法来做到这一点。
-
不,
Item内的封闭是没有用的。我的意思是 - 它会创建一个别名,但只在加载的对象内。它不会帮助您将数据发送到外部。使用active:true足以通过tab1.item.text访问文本。如果您在Tab写入property string tab1Text: (item ? item.text : '')中创建一个属性(只能用于从test读取文本) - 这将在加载Text {..}后加载文本。