У меня есть куча WebEngineViews в ListView. Например:
ListView
{
model: myModel
delegate: Component
{
Item
{
WebEngineView
{
id: myWebView
Component.onCompleted: loadHtml(model.modelData.htmlText, baseURL)
}
}
}
}
Как я могу отрегулировать высоту элемента после загрузки HTML? Рассматриваемый HTML может включать изображения, поэтому я хочу изменить размер WebEngineView, как только все будет загружено. Я подозреваю, что могу сделать что-то вроде:
ListView
{
model: myModel
delegate: Component
{
Item
{
WebEngineView
{
id: myWebView
Component.onCompleted: loadHtml(model.modelData.htmlText, baseURL)
onLoadingChanged:
{
if (!loading && loadRequest.status == WebEngineView.LoadSucceededStatus)
{
height = ????
}
}
}
}
}
}
Но я не уверен, что я должен установить высоту.
Я смог сделать то, что хотел с помощью onContentsSizeChaged, примерно так:
ListView
{
model: myModel
delegate: Component
{
Item
{
WebEngineView
{
id: myWebView
Component.onCompleted: loadHtml(model.modelData.htmlText, baseURL)
onContentsSizeChanged:
{
myWebView.height = contentsSize.height;
}
}
}
}
}
Других решений пока нет …