Spec-Zone.ru › Qt 5.6

Класс QAxWidget

Класс QAxWidget — это класс QWidget, который оборачивает ActiveX-контроль. Подробнее...

Заголовок: #include <QAxWidget>
qmake: QT += axcontainer
Наследуется от: QWidget и QAxBase
  • Список всех членов, включая унаследованные

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

QAxWidget(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
QAxWidget(const QString &c, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
QAxWidget(IUnknown *iface, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
~QAxWidget()
virtual QAxAggregated * createAggregate()
bool doVerb(const QString &verb)

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

virtual void clear()
virtual QSize minimumSizeHint() const
virtual QSize sizeHint() const
  • 211 открытых функций, унаследованных от QWidget
  • 19 открытых функций, унаследованных от QAxBase
  • 31 открытых функций, унаследованных от QObject
  • 14 открытых функций, унаследованных от QPaintDevice

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

virtual bool createHostWindow(bool initialized)
bool createHostWindow(bool initialized, const QByteArray &data)
virtual bool translateKeyEvent(int message, int keycode) const

Переопределенные защищенные функции

virtual void changeEvent(QEvent *e)
virtual void connectNotify(const QMetaMethod &signal)
virtual bool initialize(IUnknown **ptr)
virtual void resizeEvent(QResizeEvent *)
  • 35 защищенных функций, унаследованных от QWidget
  • 5 защищенных функций, унаследованных от QAxBase
  • 9 защищенных функций, унаследованных от QObject
  • 1 защищенная функция, унаследованная от QPaintDevice

Дополнительные унаследованные члены

  • 58 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QAxBase
  • 1 свойство, унаследованное от QObject
  • 19 открытых слотов, унаследованных от QWidget
  • 1 открытый слот, унаследованный от QObject
  • 3 сигналов, унаследованных от QWidget
  • 3 сигналов, унаследованных от QAxBase
  • 2 сигналов, унаследованных от QObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 11 статических открытых членов, унаследованных от QObject
  • 1 защищенный слот, унаследованный от QWidget

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

Класс QAxWidget — это класс QWidget, который оборачивает ActiveX-контроль.

Объект QAxWidget можно создать как пустой объект, с именем ActiveX-контроля, который он должен оборачивать, или с указателем на существующий интерфейс ActiveX-контроля. Свойства, методы и события ActiveX-контроля, которые используют только поддерживаемые типы данных QAxBase, становятся доступны в виде свойств, слотов и сигналов Qt. Базовый класс QAxBase предоставляет API для прямого доступа к ActiveX через указатель IUnknown.

QAxWidget является QWidget и в основном используется как таковой, например, может быть организован в иерархии виджетов и макетах или использоваться в качестве фильтра событий. Стандартные свойства виджета, например, enabled, поддерживаются, но зависит от ActiveX-контроля, чтобы реализовать поддержку таких свойств, как палитра или шрифт. QAxWidget пытается предоставить необходимые подсказки.

Однако вы не можете переопределить обработчики событий Qt, такие как mousePressEvent или keyPressEvent, и ожидать их надежной вызова. Встроенный контроль полностью покрывает QAxWidget и обычно обрабатывает сам пользовательский интерфейс. Используйте API-интерфейсы, специфичные для контроля (например, подписывайтесь на сигналы контроля) или используйте стандартные методы COM, например, подмену процедуры окна.

QAxWidget также наследует большую часть своей функциональности, связанной с ActiveX, от QAxBase, в частности, dynamicCall() и querySubObject().

Предупреждение: Вы можете унаследовать от QAxWidget, но не можете использовать макрос Q_OBJECT в подклассе (сгенерированный файл moc не будет компилироваться), поэтому вы не можете добавлять дополнительные сигналы, слоты или свойства. Это ограничение связано с метаобъектной информацией, генерируемой во время выполнения. Чтобы обойти эту проблему, агрегируйте QAxWidget в качестве члена подкласса QObject.

См. также QAxBase, QAxObject, QAxScript и Фреймворк ActiveQt.

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

QAxWidget::QAxWidget(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

Создает пустой виджет QAxWidget и передает parent и f конструктору QWidget. Чтобы инициализировать контроль, вызовите setControl().

QAxWidget::QAxWidget(const QString &c, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

Создаёт виджет QAxWidget и инициализирует ActiveX-контроль c. parent и f передаются конструктору QWidget.

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

QAxWidget::QAxWidget(IUnknown *iface, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

Создаёт QAxWidget, который оборачивает COM-объект, на который ссылается iface. parent и f передаются конструктору QWidget.

QAxWidget::~QAxWidget()

Закрывает ActiveX-контроль и уничтожает виджет QAxWidget, освобождая все выделенные ресурсы.

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

[virtual protected] void QAxWidget::changeEvent(QEvent *e)

Переопределено из QWidget::changeEvent().

[virtual] void QAxWidget::clear()

Переопределено из QAxBase::clear().

Закрывает ActiveX-контроль.

[virtual protected] void QAxWidget::connectNotify(const QMetaMethod &signal)

Переопределено из QObject::connectNotify().

[virtual] QAxAggregated *QAxWidget::createAggregate()

Переопределите эту функцию, если хотите реализовать дополнительные интерфейсы COM для клиентской части ActiveX-контроля или предоставить альтернативные реализации интерфейсов COM. Возвращает новый объект подкласса QAxAggregated.

По умолчанию функция возвращает нулевой указатель.

[virtual protected] bool QAxWidget::createHostWindow(bool initialized)

Создаёт клиентскую область для ActiveX-контроля и возвращает true, если контроль был успешно вставлен, иначе — false. Если initialized равно true, контроль уже был инициализирован.

Эта функция вызывается функцией initialize(). Если вы переопределите initialize для настройки фактической инициализации контроля, вызовите эту функцию в своём переопределении, чтобы контроль был вставлен с помощью стандартной клиентской стороны. Создаёт клиентскую область для ActiveX-контроля и возвращает true, если контроль был успешно вставлен, иначе — false.

[protected] bool QAxWidget::createHostWindow(bool initialized, const QByteArray &data)

Создаёт клиентскую область для ActiveX-контроля и возвращает true, если контроль был успешно вставлен, иначе — false. Если initialized равно false, контроль будет инициализирован с помощью data. Инициализация контроля будет выполнена с помощью интерфейсов IPersistStreamInit или IPersistStorage.

Если для инициализации контроля необходимо использовать пользовательские данные, вызовите эту функцию в своём переопределении initialize(). Эта функция не вызывается стандартной реализацией initialize().

Функция была добавлена в Qt 4.4.

bool QAxWidget::doVerb(const QString &verb)

Запрашивает ActiveX-контроль выполнить действие verb. Возможные действия возвращаются функцией verbs().

Функция возвращает true, если объект может выполнить действие, иначе — false.

Функция была добавлена в Qt 4.1.

[virtual protected] bool QAxWidget::initialize(IUnknown **ptr)

Переопределено из QAxBase::initialize().

Вызывает QAxBase::initialize(ptr) и встраивает контроль в этот виджет, вызывая createHostWindow(false), если это удалось.

Чтобы инициализировать контроль до его активации, переопределите эту функцию и добавьте код инициализации перед вызовом createHostWindow(true).

Функция была добавлена в Qt 4.2.

[virtual] QSize QAxWidget::minimumSizeHint() const

Переопределено из QWidget::minimumSizeHint().

[virtual protected] void QAxWidget::resizeEvent(QResizeEvent *)

Переопределено из QWidget::resizeEvent().

[virtual] QSize QAxWidget::sizeHint() const

Переопределено из QWidget::sizeHint().

[virtual protected] bool QAxWidget::translateKeyEvent(int message, int keycode) const

Переопределите эту функцию, чтобы передавать определённые события нажатия клавиш ActiveX-контролю. message — идентификатор сообщения Windows, указывающий тип сообщения (например, WM_KEYDOWN), а keycode — виртуальный код клавиши (например, VK_TAB).

Если функция возвращает true, событие нажатия клавиши передаётся ActiveX-контролю, который затем обрабатывает или передаёт событие Qt.

Если функция возвращает false, обработка события нажатия клавиши игнорируется ActiveQt, т. е. ActiveX-контроль может его обработать или нет.

Стандартная реализация возвращает true в следующих случаях:

WM_SYSKEYDOWN WM_SYSKEYUP WM_KEYDOWN
Все коды клавиш VK_MENU VK_TAB, VK_DELETE и все клавиши, кроме стрелок, в сочетании с VK_SHIFT, VK_CONTROL или VK_MENU

Эта таблица является результатом экспериментов с популярными ActiveX-контролями, такими как Internet Explorer и приложения Microsoft Office, но для некоторых контролей может потребоваться модификация.

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

Spec-Zone.ru

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