Spec-Zone.ru › Qt

Класс QWebChannel

Предоставляет доступ к QObject для удалённых HTML-клиентов. Подробнее...

Заголовок: #include <QWebChannel>
qmake: QT += webchannel
С момента: Qt 5.4
Наследует: QObject
  • Список всех членов, включая унаследованные

Свойства

  • blockUpdates : bool
  • propertyUpdateInterval : int

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

QWebChannel(QObject *parent = nullptr)
virtual ~QWebChannel()
bool blockUpdates() const
void deregisterObject(QObject *object)
int propertyUpdateInterval() const
void registerObject(const QString &id, QObject *object)
void registerObjects(const QHash<QString, QObject *> &objects)
QHash<QString, QObject *> registeredObjects() const
void setBlockUpdates(bool block)
void setPropertyUpdateInterval(int ms)

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

void connectTo(QWebChannelAbstractTransport *transport)
void disconnectFrom(QWebChannelAbstractTransport *transport)

Сигналы

void blockUpdatesChanged(bool block)

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

QWebChannel заполняет пробел между приложениями на C++ и HTML/JavaScript приложениями. Публикуя объект, производный от QObject, в QWebChannel и используя qwebchannel.js на стороне HTML, можно прозрачно получать доступ к свойствам, открытым слотам и методам QObject. Не требуется ручное передача сообщений и сериализация данных, обновления свойств и срабатывание сигналов на стороне C++ автоматически передаются потенциально удалённым HTML-клиентам. На стороне клиента для каждого опубликованного C++ QObject будет создан JavaScript-объект. Он отражает API C++-объекта и поэтому интуитивно понятен в использовании.

API QWebChannel на C++ позволяет взаимодействовать с любым HTML-клиентом, который может работать на локальной или даже удалённой машине. Единственное ограничение заключается в том, что HTML-клиент поддерживает JavaScript-функции, используемые в qwebchannel.js. Таким образом, можно взаимодействовать с практически любым современным HTML-браузером или автономной JavaScript-средой исполнения, такой как node.js.

Также существует декларативный API WebChannel.

См. также Пример Qt WebChannel Standalone и JavaScript API.

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

[bindable] blockUpdates : bool

Примечание: Это свойство поддерживает привязки QProperty.

При установке в значение true обновления блокируются, и удалённые клиенты не будут уведомляться об изменениях свойств.

Изменения записываются и отправляются клиентам, когда обновления снова станут доступны, установив это свойство в false. По умолчанию обновления не блокируются.

[bindable] propertyUpdateInterval : int

Примечание: Это свойство поддерживает привязки QProperty.

Это свойство содержит интервал обновления свойств.

Этот интервал можно изменить на другой интервал в миллисекундах, установив его в положительное значение. Обновления свойств группируются и отправляются после истечения интервала. Если установлено значение 0, обновления, происходящие в течение одного цикла обработки событий, группируются и отправляются в следующем цикле. Если отрицательное, обновления будут отправлены немедленно. Значение по умолчанию составляет 50 миллисекунд.

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

QWebChannel::QWebChannel(QObject *parent = nullptr)

Конструктор объекта QWebChannel с указанным parent.

Обратите внимание, что QWebChannel полностью готов к работе только после его подключения к QWebChannelAbstractTransport. HTML-клиенты также должны быть соответствующим образом настроены с помощью qwebchannel.js.

[slot] void QWebChannel::connectTo(QWebChannelAbstractTransport *transport)

Подключает QWebChannel к указанному объекту transport.

Объект transport обрабатывает общение между приложением на C++ и удалённым HTML-клиентом.

См. также QWebChannelAbstractTransport и QWebChannel::disconnectFrom().

[slot] void QWebChannel::disconnectFrom(QWebChannelAbstractTransport *transport)

Отключает QWebChannel от объекта transport.

См. также QWebChannel::connectTo().

[virtual] QWebChannel::~QWebChannel()

Удаляет QWebChannel.

[invokable] void QWebChannel::deregisterObject(QObject *object)

Дерегистрирует указанный объект object из QWebChannel.

Удалённые клиенты получат сигнал destroyed для данного объекта.

Примечание: Эту функцию можно вызывать через метаобъектную систему и из QML. См. Q_INVOKABLE.

См. также QWebChannel::registerObjects(), QWebChannel::registerObject(), и QWebChannel::registeredObjects().

[invokable] void QWebChannel::registerObject(const QString &id, QObject *object)

Регистрирует один объект в QWebChannel.

Свойства, сигналы и открытые методы объекта object публикуются удалённым клиентам. Там же создаётся объект с идентификатором id.

Примечание: Свойство, которое BINDABLE , но не имеет NOTIFY сигнала, будет иметь работающие обновления свойств на стороне клиента, но не будет иметь механизма для регистрации обратного вызова уведомлений об изменениях.

Примечание: В настоящее время существует ограничение: объекты должны быть зарегистрированы до инициализации любого клиента.

Примечание: Эту функцию можно вызывать через метаобъектную систему и из QML. См. Q_INVOKABLE.

См. также QWebChannel::registerObjects(), QWebChannel::deregisterObject(), и QWebChannel::registeredObjects().

void QWebChannel::registerObjects(const QHash<QString, QObject *> &objects)

Регистрирует группу объектов в QWebChannel.

Свойства, сигналы и открытые вызываемые методы объектов публикуются удалённым клиентам. Там же создаётся объект с идентификатором, используемым в качестве ключа в map objects.

Примечание: В настоящее время существует ограничение: объекты должны быть зарегистрированы до инициализации любого клиента.

См. также QWebChannel::registerObject(), QWebChannel::deregisterObject(), и QWebChannel::registeredObjects().

QHash<QString, QObject *> QWebChannel::registeredObjects() const

Возвращает карту зарегистрированных объектов, опубликованных для удалённых клиентов.

См. также QWebChannel::registerObjects(), QWebChannel::registerObject(), и QWebChannel::deregisterObject().

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

Spec-Zone.ru

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