Spec-Zone.ru › Qt

Класс QWebEngineView

Класс QWebEngineView предоставляет виджет для просмотра и редактирования веб-документов. Подробнее...

Заголовок: #include <QWebEngineView>
CMake: find_package(Qt6 COMPONENTS WebEngineWidgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::WebEngineWidgets)
qmake: QT += webenginewidgets
С момента: Qt 5.4
Наследует: QWidget
  • Список всех членов, включая унаследованные

Свойства

  • hasSelection : const bool
  • icon : const QIcon
  • iconUrl : const QUrl
  • selectedText : const QString
  • title : const QString
  • url : QUrl
  • zoomFactor : qreal

Открытые функции

QWebEngineView(QWidget *parent = nullptr)
virtual ~QWebEngineView()
QMenu * createStandardContextMenu()
void findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void (const QWebEngineFindTextResult &)> &resultCallback = ...)
bool hasSelection() const
QWebEngineHistory * history() const
QIcon icon() const
QUrl iconUrl() const
QWebEngineContextMenuRequest * lastContextMenuRequest() const
void load(const QUrl &url)

Переопределённые открытые функции

virtual QSize sizeHint() const override

Открытые слоты

Сигналы

Статические открытые члены

QWebEngineView * forPage(const QWebEnginePage *page)

Защищённые функции

виртуальный QWebEngineView * createWindow(QWebEnginePage::WebWindowType type)

Реализованные защищённые функции

виртуальный void closeEvent(QCloseEvent *event) override
виртуальный void contextMenuEvent(QContextMenuEvent *event) override
виртуальный void dragEnterEvent(QDragEnterEvent *e) override
виртуальный void dragLeaveEvent(QDragLeaveEvent *e) override
виртуальный void dragMoveEvent(QDragMoveEvent *e) override
виртуальный void dropEvent(QDropEvent *e) override
виртуальный bool event(QEvent *ev) override
виртуальный void hideEvent(QHideEvent *event) override
виртуальный void showEvent(QShowEvent *event) override

Подробное описание

Представление веб-страницы — это основной виджет-компонент модуля просмотра веб-страниц Qt WebEngine. Он может использоваться в различных приложениях для отображения веб-контента в реальном времени из интернета.

Веб-сайт можно загрузить в представление веб-страницы с помощью функции load(). Для загрузки URL-адресов всегда используется метод GET.

Как и все виджеты Qt, для отображения представления веб-страницы необходимо вызвать функцию show(). Ниже приведён пример:

    QWebEngineView *view = new QWebEngineView(parent);
    view->load(QUrl("http://qt-project.org/"));
    view->show();

В качестве альтернативы можно использовать setUrl() для загрузки веб-сайта. Если у вас есть HTML-контент, вы можете использовать setHtml() вместо него.

Сигнал loadStarted() генерируется при начале загрузки представления, а сигнал loadProgress() генерируется при завершении загрузки любого элемента представления веб-страницы, например, встроенного изображения или скрипта. Сигнал loadFinished() генерируется при полной загрузке представления. Его аргумент, либо true или false, указывает, была ли загрузка успешной или неудачной.

Функция page() возвращает указатель на объект веб-страницы. QWebEngineView содержит QWebEnginePage, который, в свою очередь, позволяет получить доступ к QWebEngineHistory в контексте страницы.

Заголовок HTML-документа можно получить с помощью свойства title(). Кроме того, веб-сайт может указать значок, который можно получить с помощью свойства icon() или его URL с помощью свойства iconUrl(). Если заголовок или значок изменяются, будут отправлены соответствующие сигналы titleChanged(), iconChanged() и iconUrlChanged(). Свойство zoomFactor() позволяет масштабировать содержимое веб-страницы на заданный коэффициент.

Виджет имеет контекстное меню, настроенное на текущий элемент, и содержит действия, полезные в браузере. Для настраиваемого контекстного меню или для встраивания действий в меню или панель инструментов доступны отдельные действия через pageAction(). Представление веб-страницы сохраняет состояние возвращённых действий, но позволяет изменять свойства действия, такие как text или icon. Семантику действия также можно запустить напрямую через triggerPageAction().

Если вам нужно обеспечить поддержку веб-сайтов, которые позволяют пользователю открывать новые окна, такие как всплывающие окна, вы можете наследоваться от QWebEngineView и переопределить функцию createWindow().

См. также Пример простого браузера WebEngine Widgets, Пример манипулирования содержимым WebEngine и Пример редактора Markdown WebEngine.

Документация по свойствам

[read-only] hasSelection : const bool

Это свойство указывает, содержит ли эта страница выделенный контент.

По умолчанию это свойство равно false.

Функции доступа:

bool hasSelection() const

См. также selectionChanged().

[read-only, since 5.7] icon : const QIcon

Это свойство содержит значок, связанный с текущей просматриваемой страницей.

По умолчанию это свойство содержит пустой значок.

Это свойство было добавлено в Qt 5.7.

Функции доступа:

QIcon icon() const

Сигнал уведомления:

void iconChanged(const QIcon &icon)

См. также iconChanged(), iconUrl() и iconUrlChanged().

[read-only] iconUrl : const QUrl

Это свойство содержит URL-адрес значка, связанного с текущей просматриваемой страницей.

По умолчанию это свойство содержит пустой URL.

Функции доступа:

QUrl iconUrl() const

Сигнал уведомления:

void iconUrlChanged(const QUrl &url)

См. также iconUrlChanged(), icon() и iconChanged().

[read-only] selectedText : const QString

Это свойство содержит текст, который в настоящее время выделен.

По умолчанию это свойство содержит пустую строку.

Функции доступа:

QString selectedText() const

См. также findText() и selectionChanged().

[read-only] title : const QString

Это свойство содержит заголовок страницы, как определено элементом HTML <title>.

Эквивалентно QWebEnginePage::title().

Функции доступа:

QString title() const

См. также titleChanged().

url : QUrl

Это свойство содержит URL-адрес текущей веб-страницы.

Установка этого свойства очищает представление и загружает URL-адрес.

По умолчанию это свойство содержит пустой, недопустимый URL.

Функции доступа:

QUrl url() const
void setUrl(const QUrl &url)

См. также load() и urlChanged().

zoomFactor : qreal

Это свойство содержит коэффициент масштабирования для представления.

Допустимые значения находятся в диапазоне от 0.25 до 5.0. Значение по умолчанию равно 1.0.

Функции доступа:

qreal zoomFactor() const
void setZoomFactor(qreal factor)

Документация по функциям-членам

QWebEngineView::QWebEngineView(QWidget *parent = nullptr)

Создаёт пустое представление веб-страницы с родительским виджетом parent.

См. также load().

[slot] void QWebEngineView::back()

Удобный слот, который загружает предыдущий документ в списке документов, созданном при переходе по ссылкам. Ничего не делает, если предыдущего документа нет.

Эквивалентно:

    view->page()->triggerAction(QWebEnginePage::Back);

См. также forward() и pageAction().

[slot] void QWebEngineView::forward()

Удобный слот, который загружает следующий документ в списке документов, созданном при переходе по ссылкам. Ничего не делает, если следующего документа нет.

Эквивалентно:

    view->page()->triggerAction(QWebEnginePage::Forward);

См. также back() и pageAction().

[signal, since 5.7] void QWebEngineView::iconChanged(const QIcon &icon)

Этот сигнал излучается, когда изменяется значок («иконка закладки») отображения. Новый значок задаётся параметром icon.

Примечание: Сигнал-уведомление для свойства icon.

Эта функция была введена в Qt 5.7.

См. также icon(), iconUrl() и iconUrlChanged().

[signal] void QWebEngineView::iconUrlChanged(const QUrl &url)

Этот сигнал излучается, когда изменяется URL значка («иконки закладки») отображения. Новый URL задаётся параметром url.

Примечание: Сигнал-уведомление для свойства iconUrl.

См. также iconUrl(), icon() и iconChanged().

[signal] void QWebEngineView::loadFinished(bool ok)

Этот сигнал излучается, когда завершена загрузка страницы. ok указывает, была ли загрузка успешной или произошла ошибка.

См. также loadStarted().

[signal] void QWebEngineView::loadProgress(int progress)

Этот сигнал излучается каждый раз, когда завершается загрузка элемента в веб-представлении, например, встроенного изображения или скрипта. Таким образом, он отслеживает совокупный прогресс загрузки веб-представления.

Текущее значение задаётся параметром progress и изменяется от 0 до 100, что соответствует стандартному диапазону QProgressBar.

См. также loadStarted() и loadFinished().

[signal] void QWebEngineView::loadStarted()

Этот сигнал излучается при начале новой загрузки страницы.

См. также loadProgress() и loadFinished().

[signal, since 6.2] void QWebEngineView::pdfPrintingFinished(const QString &filePath, bool success)

Этот сигнал излучается по завершении печати веб-страницы в файл PDF. filePath содержит путь к файлу, который должен быть создан, а success равно true , если файл был успешно создан, и false в противном случае.

Эта функция была введена в Qt 6.2.

См. также printToPdf().

[signal, since 6.2] void QWebEngineView::printFinished(bool success)

Этот сигнал излучается по завершении запроса на печать с помощью print(). Параметр success равен true в случае успеха и false в случае неудачи.

Эта функция была введена в Qt 6.2.

См. также print().

[signal, since 6.2] void QWebEngineView::printRequested()

Этот сигнал излучается при вызове JavaScript-метода window.print(). Обычно обработчик сигнала может просто вызвать print().

Эта функция была введена в Qt 6.2.

См. также print().

[slot] void QWebEngineView::reload()

Перезагружает текущий документ.

См. также stop(), pageAction() и loadStarted().

[signal, since 5.6] void QWebEngineView::renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode)

Этот сигнал излучается при завершении процесса отрисовки с ненулевым кодом выхода. terminationStatus — это статус завершения процесса, а exitCode — код состояния, с которым завершился процесс.

Эта функция была введена в Qt 5.6.

[signal] void QWebEngineView::selectionChanged()

Этот сигнал излучается всякий раз, когда меняется выделение.

Примечание: При использовании мыши для выделения текста щелчком и перетаскиванием сигнал будет излучаться для каждого нового выделенного символа, а не при отпускании левой кнопки мыши.

См. также selectedText().

[slot] void QWebEngineView::stop()

Удобный слот, который останавливает загрузку документа.

Эквивалентно:

    view->page()->triggerAction(QWebEnginePage::Stop);

См. также reload(), pageAction() и loadFinished().

[signal] void QWebEngineView::titleChanged(const QString &title)

Этот сигнал излучается всякий раз, когда изменяется заголовок отображения.

См. также title().

[signal] void QWebEngineView::urlChanged(const QUrl &url)

Этот сигнал излучается, когда изменяется url отображения.

См. также url() и load().

[virtual] QWebEngineView::~QWebEngineView()

Уничтожает веб-отображение.

[override virtual protected] void QWebEngineView::closeEvent(QCloseEvent *event)

Переопределяет: QWidget::closeEvent(QCloseEvent *event).

[override virtual protected] void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)

Переопределяет: QWidget::contextMenuEvent(QContextMenuEvent *event).

QMenu *QWebEngineView::createStandardContextMenu()

Создаёт стандартное контекстное меню и возвращает указатель на него.

[virtual protected] QWebEngineView *QWebEngineView::createWindow(QWebEnginePage::WebWindowType type)

Эта функция вызывается из метода createWindow() связанной страницы QWebEnginePage каждый раз, когда страница хочет создать новое окно заданного типа type. Например, при выполнении JavaScript-запроса на открытие документа в новом окне.

Примечание: Если переопределён метод createWindow() связанной страницы, этот метод не вызывается, если явно не указано в переопределении.

См. также QWebEnginePage::createWindow().

[override virtual protected] void QWebEngineView::dragEnterEvent(QDragEnterEvent *e)

Переопределяет: QWidget::dragEnterEvent(QDragEnterEvent *event).

[override virtual protected] void QWebEngineView::dragLeaveEvent(QDragLeaveEvent *e)

Переопределяет: QWidget::dragLeaveEvent(QDragLeaveEvent *event).

[override virtual protected] void QWebEngineView::dragMoveEvent(QDragMoveEvent *e)

Переопределяет: QWidget::dragMoveEvent(QDragMoveEvent *event).

[override virtual protected] void QWebEngineView::dropEvent(QDropEvent *e)

Переопределяет: QWidget::dropEvent(QDropEvent *event).

[override virtual protected] bool QWebEngineView::event(QEvent *ev)

Переопределяет: QWidget::event(QEvent *event).

END_OF_DOCUMENT_MARKER

void QWebEngineView::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void (const QWebEngineFindTextResult &)> &resultCallback = ...)

Ищет указанную строку subString на странице, используя заданные options.

Чтобы очистить выделение, просто передайте пустую строку.

resultCallback должен принимать параметр QWebEngineFindTextResult.

Предупреждение: Гарантируется, что обратный вызов (resultCallback) всегда будет вызван, но это может произойти во время уничтожения страницы. При удалении QWebEnginePage, обратный вызов вызывается с недопустимым значением, и использование соответствующего экземпляра QWebEnginePage или QWebEngineView внутри него небезопасно.

См. также selectedText() и selectionChanged().

[static, since 6.2] QWebEngineView *QWebEngineView::forPage(const QWebEnginePage *page)

Возвращает представление, если оно есть, связанное со страницей page.

Эта функция была добавлена в Qt 6.2.

См. также page() и setPage().

[override virtual protected] void QWebEngineView::hideEvent(QHideEvent *event)

Переопределяет: QWidget::hideEvent(QHideEvent *event).

QWebEngineHistory *QWebEngineView::history() const

Возвращает указатель на историю просматриваемых веб-страниц представления.

Эквивалентно:

    view->page()->history();

[since 6.2] QWebEngineContextMenuRequest *QWebEngineView::lastContextMenuRequest() const

Возвращает дополнительные данные о текущем контекстном меню. Гарантируется, что данные верны только во время вызова contextMenuEvent().

Эта функция была добавлена в Qt 6.2.

См. также createStandardContextMenu().

void QWebEngineView::load(const QUrl &url)

Загружает указанный url и отображает его.

Примечание: Представление остается прежним, пока не прибудут достаточные данные для отображения нового URL.

См. также load(), setUrl(), url(), urlChanged(), и QUrl::fromUserInput().

[since 5.9] void QWebEngineView::load(const QWebEngineHttpRequest &request)

Выполняет указанный request и загружает ответ.

Эта функция была добавлена в Qt 5.9.

См. также load(), setUrl(), url(), urlChanged(), и QUrl::fromUserInput().

QWebEnginePage *QWebEngineView::page() const

Возвращает указатель на базовую веб-страницу.

См. также setPage().

QAction *QWebEngineView::pageAction(QWebEnginePage::WebAction action) const

Возвращает указатель на QAction, который инкапсулирует указанное веб-действие action.

[since 6.2] void QWebEngineView::print(QPrinter *printer)

Отображает текущее содержимое страницы в временный PDF-документ, затем печатает его с помощью printer.

Параметры создания и печати PDF-документа берутся из объекта printer.

По завершении генерируется сигнал printFinished() со значением true в случае успеха или false в случае ошибки.

Пользователь обязан убедиться, что printer остаётся валидным до момента генерации сигнала printFinished().

Примечание: Печать выполняется в процессе браузера, который по умолчанию не защищён.

Примечание: Эта функция растрирует результат при отображении на printer. Рекомендуется установить разрешение printer по крайней мере на 300 DPI или использовать printToPdf() для более эффективного создания PDF-файла.

Эта функция была добавлена в Qt 6.2.

[since 6.2] void QWebEngineView::printToPdf(const QString &filePath, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})

Отображает текущее содержимое страницы в PDF-документ и сохраняет его по пути, указанному в filePath. Размер и ориентация страницы PDF-документа берутся из значений, указанных в layout, а диапазон печатаемых страниц берётся из ranges, по умолчанию печатаются все страницы.

Этот метод отправляет асинхронный запрос на печать веб-страницы в PDF и возвращается сразу. Чтобы получить информацию о результате запроса, подключитесь к сигналу pdfPrintingFinished().

Если файл с указанным путём уже существует, он будет перезаписан.

Эта функция была добавлена в Qt 6.2.

См. также pdfPrintingFinished().

[since 6.2] void QWebEngineView::printToPdf(const std::function<void (const QByteArray &)> &resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})

Отображает текущее содержимое страницы в PDF-документ и возвращает массив байтов, содержащий данные PDF, в качестве параметра resultCallback. Размер и ориентация страницы PDF-документа берутся из значений, указанных в layout, а диапазон печатаемых страниц берётся из ranges, по умолчанию печатаются все страницы.

resultCallback должен принимать константную ссылку на QByteArray в качестве параметра. Если печать выполнена успешно, этот массив байтов будет содержать данные PDF, в противном случае массив байтов будет пустым.

Предупреждение: Гарантируется, что обратный вызов (resultCallback) всегда будет вызван, но это может произойти во время уничтожения страницы. При удалении QWebEnginePage, обратный вызов вызывается с недопустимым значением, и использование соответствующего экземпляра QWebEnginePage или QWebEngineView внутри него небезопасно.

Эта функция была добавлена в Qt 6.2.

void QWebEngineView::setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl())

Устанавливает содержимое веб-представления на data. Если аргумент mimeType пустой, считается, что содержимое text/plain,charset=US-ASCII.

Внешние объекты, на которые ссылается содержимое, расположены относительно baseUrl. Для загрузки внешних объектов baseUrl не может быть пустым.

Данные загружаются немедленно; внешние объекты загружаются асинхронно.

См. также load(), setHtml(), и QWebEnginePage::toHtml().

void QWebEngineView::setHtml(const QString &html, const QUrl &baseUrl = QUrl())

Устанавливает содержимое веб-представления на указанное html-содержимое.

Внешние объекты, такие как таблицы стилей или изображения, на которые ссылается HTML-документ, расположены относительно baseUrl. Для загрузки внешних объектов baseUrl не может быть пустым. Например, если html получено из http://www.example.com/documents/overview.html, которое является базовым URL, то изображение, на которое ссылается относительный URL, diagram.png, должно находиться по адресу http://www.example.com/documents/diagram.png.

HTML-документ загружается немедленно, в то время как внешние объекты загружаются асинхронно.

При использовании этого метода Qt WebEngine предполагает, что внешние ресурсы, такие как JavaScript-программы или таблицы стилей, закодированы в UTF-8, если не указано иное. Например, кодировка внешнего скрипта может быть указана через атрибут charset тега HTML script. В качестве альтернативы кодировка может быть указана веб-сервером.

Это функция-обёртка, эквивалентная setContent(html, "text/html;charset=UTF-8", baseUrl).

Предупреждение: Эта функция работает только для HTML. Для других MIME-типов (таких как XHTML или SVG), следует использовать setContent().

Примечание: Контент размером более 2 МБ не может быть отображён, поскольку setHtml() преобразует предоставленный HTML в проценты и помещает data: перед ним, чтобы создать URL, к которому он переходит. Таким образом, предоставленный код становится URL, превышающим ограничение в 2 МБ, установленное Chromium. Если контент слишком большой, сигнал loadFinished() срабатывает с success=false.

См. также load(), setContent(), QWebEnginePage::toHtml() и QWebEnginePage::setContent().

void QWebEngineView::setPage(QWebEnginePage *page)

Устанавливает page в качестве новой веб-страницы для веб-представления.

Родительский QObject предоставленной страницы остаётся владельцем объекта. Если текущая страница является дочерним элементом веб-представления, она будет удалена.

См. также page().

QWebEngineSettings *QWebEngineView::settings() const

Возвращает указатель на объект настроек, специфичный для представления или страницы.

Эквивалентно:

    view->page()->settings();

[override virtual protected] void QWebEngineView::showEvent(QShowEvent *event)

Переопределяет: QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QWebEngineView::sizeHint() const

Переопределяет функцию доступа к свойству: QWidget::sizeHint.

void QWebEngineView::triggerPageAction(QWebEnginePage::WebAction action, bool checked = false)

Вызывает указанное действие action. Если это действие с возможностью выбора, предполагается указанное состояние checked.

В следующем примере вызывается действие копирования, и поэтому любой выделенный текст копируется в буфер обмена.

    view->triggerPageAction(QWebEnginePage::Copy);

См. также pageAction().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qwebengineview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API