2016-04-22 4 views
0

私はqmlをroot、2つの視覚(Text、Rectangle)と1つの非視覚的項目(Timer)を持つと仮定します。私は "データ"を使用して、視覚的および非視覚的な項目のリストを得ることができることを知っていますが、を反復しながら視覚的および非視覚的な項目を識別する方法?qmlアイテムを知る方法はビジュアルかリソースですか?

注:各アイテムの作成時に命名規則を指定できますが、視覚的および非視覚的なアイテムを識別するためのプロパティ/ APIはありますか?

Item { 
    children: [ 
     Text {}, 
     Rectangle {} 
    ] 
    resources: [ 
     Timer {} 
    ] 
} 
+1

なぜそれをしたいですか? データを使用して要素を割り当ててから、子要素を持つビジュアル要素またはリソースを持つ非ビジュアル要素を反復処理できます。 – GrecKo

答えて

2

すべての視覚的なアイテムがItemから派生しているので、彼らはすべての対応するプロパティを持つことになります。何らかの理由であなたが視覚的な項目ではありませんが、何らかの理由でvisibleプロパティを持つカスタム型を持っている場合

var obj = data[i] 
if (obj.visible !== undefined) // obj has visible property so it is a visual item 

当然のことながら、これは動作しませんので、選ぶ:あなたは、などの基本として何かを行うことができますそれに応じてプロパティ。

+2

おそらく 'instanceof'は、プロパティをブラインドチェックするよりも堅牢であるために使用できますか? – peppe

関連する問題