У меня есть объект изображения в QML (QtQuick 1.0), его высота должна быть относительной (в случае масштабирования окна), но проблема в том, что я пытаюсь отобразить это изображение в полноразмерном виде. Пожалуйста, обратитесь к следующей части моего кода:QML изменение размера изображения
Image {
id: selectionDialogImage
source: "qrc:/Images/myImage.png"
property int oldHeight: sourceSize.height
sourceSize.height: testsList.height/3
scale: 1
anchors.bottom: parent.bottom
anchors.left: parent.left
visible: false
property bool imageFullsize: false
MouseArea {
anchors.fill: parent
onClicked:
{
if(parent.imageFullsize)
{
parent.parent = selectionDialogQuestionText;
parent.sourceSize.width = undefined;
parent.sourceSize.height = testsList.height/3;
parent.anchors.horizontalCenter = undefined;
parent.anchors.verticalCenter = undefined;
parent.anchors.left = selectionDialogQuestionText.left;
parent.anchors.bottom = selectionDialogQuestionText.bottom;
parent.imageFullsize = false;
}
else
{
parent.parent = mainItem;
parent.sourceSize.height = parent.oldHeight;
//parent.sourceSize.height = undefined;
parent.sourceSize.width = mainItem.width;
parent.anchors.horizontalCenter = mainItem.horizontalCenter;
parent.imageFullsize = true;
}
}
}
}
selectionDialogQuestionText по умолчанию родитель моего элемента изображения а. mainItem - самый большой элемент, он имеет размер всего окна. Поэтому я хочу, чтобы размер изображения был установлен на основе ширины, когда я показываю его на полноэкранном режиме, но в другом состоянии я хочу масштабировать настройку изображения по высоте.
Когда я установил parent.sourceSize.width = mainItem.width;
, изображение не масштабируется, но его высота как и раньше (очень мало), поэтому его пропорции неуместны.
Могу ли я хранить старую высоту исходного изображения каким-либо образом? Мне нужно что-то вроде const, потому что property int oldHeight: sourceSize.heigh
относительный. Или есть способ восстановить размер изображения по умолчанию, а затем установить высоту/ширину?
UPDATE # 1: Я пытался использовать метод, описанный @Mitch:
property int oldHeight
Component.onCompleted: {
oldHeight = sourceSize.height
}
sourceSize.height: 250
но console.log("oldHeight="+parent.oldHeight)
несколько строк ниже показывает oldHeight=250
, а не первоначальную высоту.
Можете ли вы представить иллюстрации того, что вы пытаетесь сделать? Твой вопрос довольно трудно понять. – Mitch