Как получить 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),

Другие вопросы по тегам