Неверный групповой доступ к собственности

В этом коде 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 ответ

Вы можете попытаться обойти правила области видимости QML, обходя дочерние элементы Item до тех пор, пока не сможете найти изображение и манипулировать им напрямую. Возможно, это может сломаться в будущем, но 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);
Другие вопросы по тегам