2016-09-02 6 views
0

無効なグループ化されたプロパティへのアクセス

Component {  
    id: userdelegate 
    PictureBox { 
    ... 
    icon: model.icon 
    icon.heigth: 50 
    } 
} 

PictureBoxは、このようにPictureBox.qmlシステムファイルから来ている:

... 
Image { 
    id: icon 
    ... 
    width: parent.width; height: 150 
} 

QMLを実行すると、私はタイトルに誤りがあります。 PictureBox.qmlを使用する必要がありますが、変更することはできません。 PictureBox.qmlアイコンのデフォルトの高さ値を上書きするにはどうすればよいですか?

+0

唯一の方法は[別名](http://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html#property-attributes)を使用していると思います。しかし、あなたはPictureBox.qmlを変更することはできないと言った:-O – Tarod

+0

私はそのコード( "' PictureBox.qml' ")のどこにでも' icon'プロパティが表示されません。実際に質問に関連するコードを投稿できますか? – Mitch

+0

@Mitch:アイコンはImage要素のIDです。 – cloc3

答えて

0

Imageを見つけて直接操作できるようになるまで、アイテムの子をトラバースすることで、QMLのスコープ規則をバイパスすることができます。それが将来的に壊れる可能性が可能ですが、item.toString()はあなたに有益な何かを与える:

このようにそれを使用して
function findItemOfType(type, item) { 
    if (item.toString().indexOf(type) != -1) { 
     return child; 
    } 
    for (var i=0;i < children.length;++i) { 
     var child = children[i]; 
     var result = findItemOfType(type, child.children); 
     if (result != null) { 
      return result; 
     } 
    } 
    return null; 
} 

ので
item.toString() -> "QQuickImage(0x114054350)" 

、あなたはこの(テストしていない)のような何かを試すことができます

findItemOfType("QQuickImage", pictureBoxId); 
関連する問題