Qt QML,如何在缩放后告诉项目渲染大小
所以我在Flickable中有一个图像。我想知道应用缩放后图像的大小,以便将其指定给Flickable的contentWidth和contentHeight。是否有一种方法可以在应用刻度后获得尺寸Qt QML,如何在缩放后告诉项目渲染大小,qt,qml,qtquick2,Qt,Qml,Qtquick2,所以我在Flickable中有一个图像。我想知道应用缩放后图像的大小,以便将其指定给Flickable的contentWidth和contentHeight。是否有一种方法可以在应用刻度后获得尺寸 Flickable{ contentWidth: target.width contentHeight: target.height Image{ id: target horizontalAlignment: Image.AlignLeft
Flickable{
contentWidth: target.width
contentHeight: target.height
Image{
id: target
horizontalAlignment: Image.AlignLeft
verticalAlignment: Image.AlignTop
fillMode: Image.PreserveAspectFit
scale: slider_bar.value
source: "/image.png"
}
}
Slider{
id: slider_bar
from: 0
to : 2
value: 1
}
另一个例子是,我想让rect_1变大,让rect_2保持在它的右边。运行以下命令时,rect_1会调整大小,但rect_2不会移动
Rectangle{
id:rect_1
height: 100
width: 100
scale: slider_bar.value
transformOrigin: Item.TopLeft
color: "green"
}
Rectangle{
id: rect_2
anchors.left: rect_1.right
height: 100
width: 100
color:"red"
}
Slider{
id: slider_bar
from: 0
to : 2
value: 1
}
我可以做类似的事情
ScaledItem.qml
Item{
height: implicitHeight
width:implicitWidth
implicitHeight: childrenRect.height * scale
implicitWidth: childrenRect.width * scale
scale:1
}
然后
myImage.width*myImage.scale
不起作用?我想知道是否有一种方法可以获得图像或项目的渲染大小,而不必执行item.width*item.scale。比如有item.renderedWidth。图像有一个绘画宽度,这是我真正需要的。所以contentWidth:myImage.paintedWidth*myImage.scale在使用PreserveApectFit时。另一种操作是使用transform:Scale{xScale:2;yScale:2},因此在本例中,我不知道渲染的最终高度和宽度,但在使用myImage.width*myImage.Scale时,我不知道。
ScaledItem{
scale: slider_bar.value
transformOrigin: Item.TopLeft
id:rect_1
Rectangle{
height: 100
width: 100
color: "green"
}
}
Rectangle{
anchors.left: rect_1.right
height: 100
width: 100
color:"red"
}
Slider{
id: slider_bar
from: 0
to : 2
value: 1
}