无效的分组属性访问权限

时间:2016-09-02 06:58:05

标签: qt qml qqmlcomponent

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

1 个答案:

答案 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);