我正在使用Qt 5.2和QtQuick 2.2。 在我的项目中,我有几个模块放在分开的目录中。我的问题是我在定义属性时不能在typename中使用点分隔符。 例如:
MyRect.qml
import QtQuick 2.2
Rectangle {
id: root
property color rectColor: "white"
color: root.rectColor
}
MyRectInRect.qml
import QtQuick 2.2
import "./" as MyModule
Rectangle {
id: root
property MyModule.MyRect innerRect: MyModule.MyRect { }
// ^ error: Unexpected token `.'; Unexpected token `identifier'
}
我已经在手册中搜索了可以解释这种行为的东西,但看起来在那里没有任何关于它的内容。我猜这个点符号不允许用于"类型"属性定义领域。但有没有办法明确定义哪个模块应该作为一个类型使用哪个组件?因为可能需要声明具有相同类型名称的属性,但是来自不同的模块。