使用限定符导入时,无法将导入的类型用作QML中的属性类型

使用限定符导入时,无法将导入的类型用作QML中的属性类型,qml,Qml,例如,为了避免名称空间冲突,我想使用限定符在QML中导入一个模块: import <ModuleIdentifier> <Version.Number> [as <Qualifier>] property User user 在这个导入中,我有一个名为“User”的类型。然后,我想在QML文件中将其用作类型为“User”的属性 //User.qml import QtQuick 2.8 import com.myorg.model 1.0 as Model

例如,为了避免名称空间冲突,我想使用限定符在QML中导入一个模块:

import <ModuleIdentifier> <Version.Number> [as <Qualifier>]
property User user
在这个导入中,我有一个名为“User”的类型。然后,我想在QML文件中将其用作类型为“User”的属性

//User.qml
import QtQuick 2.8
import com.myorg.model 1.0 as Model

Item {
    property Model.User user         //This does not work
    property var user: Model.User {} //This does work, but if possible I want to avoid 'var'.
    property User user               //This works, if I remove the qualified name in the import statement.
}
因此,如果import语句中没有'Model'限定符,我可以在属性中使用'User'作为类型,但一旦使用限定符,就不能使用。这对我来说似乎很奇怪。有什么好的理由吗?或者只是不被支持

我个人希望能够做到:

property Model.User user
就像我在不使用限定符时一样:

import <ModuleIdentifier> <Version.Number> [as <Qualifier>]
property User user

这是Qt中的一个bug。它在Qt5.8.0中得到了修复:。

而不是
var
您还可以使用
QtObject
,这可能更好。@derM:这是一个很好的提示。至少它有点接近实际的混凝土类。