我在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
是相對的。或者有沒有辦法恢復圖像的默認大小,然後設置高度/寬度?
更新#1: 我試圖用由@米奇描述的方法:
property int oldHeight
Component.onCompleted: {
oldHeight = sourceSize.height
}
sourceSize.height: 250
但console.log("oldHeight="+parent.oldHeight)
下面幾行示出了oldHeight=250
,不是原來的高度。
你可以提供你想要做什麼說明?你的問題很難遵循。 – Mitch 2014-09-25 08:11:50