Как получить contentSize веб-страницы в Qt5.4-QtWebEngine
Я использую новый Qt5.4 с модулем QtWebEngine и из того, что я вижу, mainFrame() больше не существует. Как получить contentSize/ размер страницы и как его отобразить сейчас? Я пытался с setView и просмотра, но не работает.
2 ответа
Я не смог найти какой-либо нативный метод Qt для этого, но я нашел обходной путь: после загрузки страницы я делаю следующее, чтобы изменить размер своего виджета до веб-содержимого:
webView->page()->runJavaScript("document.documentElement.scrollWidth;",[=](QVariant result){
int newWidth=result.toInt()+10;
webView->resize(newWidth,webView->height());
});
webView->page()->runJavaScript("document.documentElement.scrollHeight;",[=](QVariant result){
int newHeight=result.toInt();
webView->resize(webView->width(),newHeight);
});
Примечание: я добавил поле шириной 10 пикселей
Проверьте, если QWebEnginePage::geometryChangeRequested
Сигнал делает то, что вы хотите.
Также вы отображаете QWebEnginePage
создавая QWebEngineView
(это QWidget
) и зовет QWebEngineView::setPage(yourPage)
,