2017-03-29 11 views
2

私は修飾子を使用してQMLでモジュールをインポートする名前空間の衝突を避ける:修飾子付きインポート時にQMLのプロパティタイプとしてインポートされた型を使用できません

import <ModuleIdentifier> <Version.Number> [as <Qualifier>] 

ので、私の場合には、私が使用します。

import com.myorg.models 1.0 as Model 

このインポートでは、私は、「ユーザー」という名前のタイプがあります。私は、これを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文の「モデル」修飾子なし。これは私には奇妙に思える。何か良い理由はありますか、それともサポートされていませんか?

個人的に私が行うことができるようにしたいと思います:

property Model.User user 

を私は修飾子を使用しないことができるときと同じように:

property User user 
+2

'var'ではなく' QtObject'を使うこともできますが、これはおそらく良いでしょう。 – derM

+0

@derM:それは良いヒントです。少なくとも実際の具体的なクラスには少し近いです。 – Phat

答えて

関連する問題