У меня есть Flickable
с ребенком Canvas
и Image
. Я загружаю изображение в source
из Image
одним нажатием кнопки. Это все работает.
Проблема в том, что мерцание не обновляет его размеры до размера изображения, так что все изображение «мерцает», и я могу прокручивать его (оно больше, чем видимое окно). Тем не менее, это обновляет, если я изменяю размер окна, и тогда я могу пролистывать изображение.
Полагаю, это потому, что окно перерисовывается, а 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
}
}