0

在这个 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图标的默认高度值?

4

1 回答 1

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);
于 2016-09-02T11:14:17.847 回答