我有Flickable
一个孩子Canvas
和Image
。我正在单击按钮将图像加载到source
中。Image
这一切都有效。问题是 flickable 不会将其尺寸刷新为图像的尺寸,因此整个图像是“flickable”的,我可以滚动它(它比可视窗口大)。但是,如果我调整窗口大小,它会刷新,然后我可以在图像周围轻弹。
我猜这是因为正在重绘窗口,并且 qml 正在重新读取img.width
和img.height
值以重绘Flickable
.
(仅供参考,如果我在启动应用程序时加载图像,Flickable 按预期工作,只有当我在单击按钮时加载图像,一旦应用程序运行,窗口需要重绘(或调整大小)才能Flickable
工作正如预期的那样
Flickable {
id: flickableCanvas
anchors.fill: parent
Item {
id: source
width: Math.max(parent.width,img.width)
height: Math.max(parent.height,img.height)
Image
{
id: img
}
Canvas {
id: myCanvas
}
}
}
Connections {
target: QmlBridge
onLoadImage: {
img.source = p
myCanvas.requestPaint()
flickableCanvas.contentWidth = img.width
flickableCanvas.contentHeight = img.height
}
}