在这个qml代码中:
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 :(得分:0)
您可以尝试通过遍历Item子项来绕过QML的范围规则,直到您可以找到Image并直接操作它。它可能会在未来破裂,但是item.toString()
会给你一些有用的东西:
item.toString() -> "QQuickImage(0x114054350)"
所以,你可以尝试这样的事情(未经测试):
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;
}
像这样使用它:
findItemOfType("QQuickImage", pictureBoxId);