QWebView или QWebEngineView

Есть ли функциональные различия между QWebView и QWebEngineView? Если я правильно понимаю, QWebView - это webkit, а QWebEngineView - мигает. Есть ли отличия от программиста? Предлагаете ли вы больше настроек для внешнего вида? чувствовать над другим?

Ответы

Ответ 1

Я бы попробовал QtWebEngine. Он заменяет QtWebKit по какой-то причине.

Если вы управляете HTML, который получает рендеринг, то, вероятно, не помешает использовать QWebKit. Просто убедитесь, что вы проверили свои страницы заранее.

QWebView использует WebKit в качестве бэкэнд.

http://doc.qt.io/qt-5/qwebview.html#details

QWebEngineView использует Chromium в качестве бэкэнд.

http://doc.qt.io/qt-5/qwebengineview.html#details

WebKit - это то, что используется в Konqueror для Linux и Rekonq. Это неплохо, но это не так здорово на общих (и часто несовершенных) веб-страницах/html, на мой взгляд.

Chromium - намного более новый, быстрый и надежный двигатель.

Я не знаю всех технических деталей, но QWebEngine - большой шаг в правильном направлении. Я нашел это в основном из своего собственного экспериментального и эмпирического использования.

Чтобы дать WebKit достойную попытку, посмотрите на этот проект и попробуйте различные страницы:

http://qtweb.net/

https://github.com/magist3r/QtWeb

Вот еще информация о QtWebEngine v QtWebKit

http://wiki.qt.io/QtWebEngine

http://en.wikipedia.org/wiki/WebKit

http://wiki.qt.io/QtWebKit

Ответ 2

Что касается меня, я не вижу некоторых очень важных функций в QWebEngineView. Прежде всего, вы не можете получить доступ ко всем кадрам на странице, и вы не сможете запустить JS во всех кадрах. Следующим из них является то, что вы не можете использовать QNetworkAccessManager для подстрочного слоя управления. Так что пока я не вижу никаких решений для некоторых проблем, таких как Как отключить звук на flashplayer в моем настраиваемом приложении?. Я хочу верить, что это возможно в некотором роде, потому что QWebEngineView работает намного быстрее и кажется, что у него нет (или меньше) проблем с утечкой памяти, чем QWebView.

Ответ 3

Рамка: WebKit vs WebEngine

Раньше был Qt WebKit с 2007 года до версии 3. Согласно этому блогу Qt и здесь он заменен новым веб-движком на базе Chromium, который является Qt WebEngine. Согласно ссылке Qt WebKit работает отлично сейчас и будет продолжать делать это в ближайшие годы, но если вы хотите иметь все последние и самые лучшие возможности HTML5, доступные для вашего приложения или устройства, вам стоит подумать о переходе на Qt WebEngine.

Как говорится в этом блоге: Qt 5.4 также содержит более старый модуль Qt WebKit. Qt WebKit по-прежнему поддерживается, но с Qt 5.4 мы считаем, что он не будет добавлен к новой функциональности. Мы также планируем отказаться от Qt WebKit в будущих выпусках, поскольку новый Qt WebEngine предоставляет то, что необходимо. В

Мое решение: я предпочитаю идти с последним QtWebEngine специально, когда я нахожусь на начальном этапе. Если я ударил стену, то, возможно, я вернусь к Qt WebKit. QML: WebView vs WebEngineView.

Для наличия элемента браузера в QML существуют два элемента WebView и WebEngineView.

WebView с тем же именем был определен как в WebKit, так и в WebEngine. Документация для WebView в WebKit приведена здесь. Он должен иметь импорт QtWebKit 3.0.

Для использования WebView, привязанного к WebEngine, о котором упоминается в этой документации, нам нужно иметь этот импорт: импортировать QtWebView 1.0. Но мы, скорее всего, столкнемся с ошибкой №5 и №6, которые решения для отладки являются состояниями в ссылке.

Я буду использовать последний WebView, то есть тот, который предоставляется WebEngine. Доказательством того, что он связан с WebEngnie, является решение отладки для ошибок № 5 и № 6. С этого момента WebView ссылается на тот, который предлагается WebEngine в этом документе.

Как говорится в этом блоге: В Qt 5.4 предоставляется Qt WebView, который предлагает более ограниченный API для встраивания веб-браузера, который является родным для базовой операционной системы, для случаев использования, когда полный Qt WebEngine не нужен или где он не может из-за ограничений, исходящих из базовой ОС. В Qt 5.4 модуль Qt WebView поддерживает iOS и Android. Он поддерживает внедрение собственных сетевых движков базовой операционной системы в Qt и в настоящее время доступен для Android и iOS. Из-за этого Qt WebView также предлагает удобное легкое решение для простой интеграции веб-документов.

WebEngineView позволяет приложениям QML отображать области динамического веб-контента. Компонент WebEngineView может совместно использовать экран с другими компонентами QML или включать полный экран, как указано в приложении QML. Это мой выбор в приложениях, которые не будут выполняться в iOS и Android.

Примечание. Согласно этому блогу QtWebView, когда это возможно, вернется к использованию QtWebEngine. Тем временем они делают больше платформ с помощью WebView. Он также упоминается как ответ на QT-Bug, что: хотя у нас нет собственных реализаций WebView для OS X, Window и т.д., Мы можем отказаться от использования QtWebEngine

Мое решение: WebEngineView в приложениях, отличных от Android и iOS.