Интеграция веб-контента с помощью QtWebKit
QtWebKit предоставляет механизм веб-браузера, который делает легким встраивание контента из всемирной паутины в ваше приложение Qt. Одновременно веб-контент может быть расширен с помощью элементов управления, присущих данной системе.
QtWebKit предоставляет возможности визуализации документов HyperText Markup Language (HTML), Extensible HyperText Markup Language (XHTML) и масштабируемой векторной графики (Scalable Vector Graphics, SVG), применять стили с использованием каскадных таблиц стилей (Cascading Style Sheets, CSS) и расширять сценариями с помощью JavaScript.
Мост между средой выполнения JavaScript и объектной моделью Qt делает возможным расширение сценариями и для пользовательских объектов QObject. Интеграция с модулем работы с сетью Qt делает возможным прозрачную загрузку веб-страниц с веб-серверов, из локальной файловой системы или даже из системы ресурсов Qt.
Кроме того предоставляя чистые средства визуализации можно сделать документы HTML полностью редактируемыми пользователями посредством использования атрибута contenteditable элементов HTML.
QtWebKit is based on the Open Source WebKit engine. More information about WebKit itself can be found on the WebKit Open Source Project Web site.
Модуль QtWebKit является частью Выпуска Qt Full Framework и Версий Open Source Qt.
Note: Building the QtWebKit module with debugging symbols is problematic on many platforms due to the size of the WebKit engine. Мы рекомендуем собирать модуль для встраиваемых платформ только в режиме релиза. Currently QtWebKit will always be compiled without debugging symbols when using gcc. Take a look at the last lines of src/3rdparty/webkit/WebCore/WebCore.pro if you need to change this.
Замечание: Пиктограммы сайтов, известные также как "FavIcons", в настоящее время не поддерживаются под Windows. Мы планируем вернуться к этому в следующих выпусках.
Note: WebKit has certain minimum requirements that must be met on Embedded Linux systems. See the Qt for Embedded Linux Requirements document for more information.
Темы:
Архитектура
Самый лёгкий способ визуализировать контент - через класс QWebView. Как виджет он может быть встроен в ваши формы или графическое представление, и он предоставляет вспомогательные функции для скачивания и визуализации веб-сайтов.
QWebView *view = new QWebView(parent);
view->load(QUrl("http:
view->show();
QWebView используется для просмотра веб-страниц. Экземпляр класса QWebView содержит один объект QWebPage. QWebPage предоставляет доступ к структуре документа страницы, описывая возможности, такие как фреймы, история перемещения и стек отмены/повтора команд для редактируемого контента.
Документы HTML могут вложены друг в друга с использованием фреймов в наборе фреймов. Отдельный фрейм в HTML представляется используя класс QWebFrame. Этот класс содержит мост к объекту окна JavaScript и может быть отрисован с использованием QPainter. Каждая QWebPage имеет один объект QWebFrame в качестве главного фрейма, а главный фрейм может содержать множество дочерних фреймов.
Отдельные элементы документа HTML могут быть доступны через интерфейсы DOM JavaScript изнутри веб-страницы. Эквивалентом этого API в QtWebKit является представление QWebElement. Объекты QWebElement получают используя функции QWebFrame'а findAllElements() и findFirstElement() с запросами селектора CSS.
Общепринятые возможности браузера, настройки по умолчанию и другие настройки можно конфигурировать посредством класса QWebSettings. Можно предоставить умолчания для всех экземпляров класса QWebPage посредством настроек по умолчанию. Отдельные атрибуты могут быть перегружены объектом настроек индивидуальным страницы.
Поддержка подключаемого модуля Netscape
Замечание: Поддержка подключаемого модуля Netscape доступна только на настольных платформах.
Since WebKit supports the Netscape Plugin API, Qt applications can display Web pages that embed common plugins on platforms for which those plugins are available. To enable plugin support, the user must have the appropriate binary files for those plugins installed and the QWebSettings::PluginsEnabled attribute must be enabled for the application.
Поиск подключаемых модулей будет вестись в следующих местах:
Linux/Unix (X11) | Windows |
- .mozilla/plugins в домашнем каталоге пользователя
- .netscape/plugins в домашнем каталоге пользователя
- Местонахождение системы, например
- /usr/lib/browser/plugins
- /usr/local/lib/mozilla/plugins
- /usr/lib/firefox/plugins
- /usr/lib64/browser-plugins
- /usr/lib/browser-plugins
- /usr/lib/mozilla/plugins
- /usr/local/netscape/plugins
- /opt/mozilla/plugins
- /opt/mozilla/lib/plugins
- /opt/netscape/plugins
- /opt/netscape/communicator/plugins
- /usr/lib/netscape/plugins
- /usr/lib/netscape/plugins-libc5
- /usr/lib/netscape/plugins-libc6
- /usr/lib64/netscape/plugins
- /usr/lib64/mozilla/plugins
- Расположение, задаваемое переменными окружения:
- $MOZILLA_HOME/plugins
- $MOZ_PLUGIN_PATH
- $QTWEBKIT_PLUGIN_PATH
|
- Каталог пользователя Application Data\Mozilla\plugins
- Стандартное расположение подключаемых модулей Quicktime, Flash и т.д.
|
Mac OS X |
- Library/Internet Plug-Ins в домашнем каталоге пользователя
- Системный каталог /Library/Internet Plug-Ins
|
Авторские права © 2010 Nokia Corporation и/или её дочерние компании |
Торговые марки |
Qt 4.6.4 |
|