Альтернативные способы отображения веб-страницы в Qt

Когда я посещаю эту веб-страницу, которая представляет собой простую карту из Google Maps с, например, Chrome или Firefox, все естественно. Вы можете дважды щелкнуть, чтобы увеличить масштаб, вы можете перетащить карту и перетащить значок режима просмотра улиц.

Но когда эта веб-страница загружается в объект QWebView со следующим кодом, у меня нет возможности перетаскивания мышью. Так, например, я не могу перетащить карту, чтобы изменить ее.

QWebView view;
view.setUrl(QUrl("https://google-developers.appspot.com/maps/documentation/javascript/examples/map-simple"));
view.show();

И я не мог найти никакого решения для этого до сих пор. Есть ли другой способ отобразить веб-страницу в виджете Qt?


person s4eed    schedule 27.08.2012    source источник


Ответы (2)


В Qt уже есть образец браузера, который обеспечивает эту функциональность:

[QTDIR]\демо\браузер

Я не уверен, как давно это было включено, но это точно в 4.8. Он реализует довольно полный браузер, но интересующий вас код находится в файле webview.cpp. Это обертка QWebView и демонстрирует, как реализовать события мыши, клики, загрузки и т. д.

person parsley72    schedule 31.07.2013

QtWebkit немного глючит и использует очень старую версию движка рендеринга, которую можно сравнить только с ранними версиями chrome или safari. Если вы просто планируете предоставить простой предварительный просмотр веб-страницы внутри приложения, вы можете использовать QWebEngine.

это даст вам лучший рендеринг (см. эту ссылку)

http://qt-project.org/wiki/QtWebEngineHowToTry

проект все еще находится в стадии разработки, и многие функции, такие как инъекция js и т. д., все еще отсутствуют.

Знайте этот факт. Рендеринг веб-страниц в Qt представляет собой беспорядок.

(если ничего не работает, вы можете полностью отказаться от Qt и попробовать Mozilla XUL, у него есть очень хороший механизм компоновки веб-страниц «Gecko»)

person Midhun    schedule 02.03.2014