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.