Spec-Zone.ru › Qt 5.11

Класс QAxWidget

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

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

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

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

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

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

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

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) override
virtual void connectNotify(const QMetaMethod &signal) override
virtual bool initialize(IUnknown **ptr) override
virtual void resizeEvent(QResizeEvent *) override
  • 35 защищённых функций, унаследованных от QWidget
  • 5 защищённых функций, унаследованных от QAxBase
  • 9 защищённых функций, унаследованных от QObject

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

  • 59 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QAxBase
  • 1 свойство, унаследованное от QObject
  • 19 открытых слотов, унаследованных от QWidget
  • 1 открытый слот, унаследованный от QObject
  • 3 сигнала, унаследованные от QWidget
  • 3 сигнала, унаследованные от QAxBase
  • 2 сигнала, унаследованные от QObject
  • 1 открытая переменная, унаследованная от QWidget
  • 1 открытая переменная, унаследованная от QObject
  • 7 статических открытых членов, унаследованных от QWidget
  • 10 статических открытых членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget
  • 2 защищённых переменных, унаследованных от QObject

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

Класс 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 Framework.

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

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

Создаёт пустой виджет QAxWidget и передаёт parent и f конструктору QWidget. Для инициализации компонента вызовите setControl().

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

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

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

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

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

[virtual] QAxWidget::~QAxWidget()

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

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

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

Переопределяет QWidget::changeEvent().

[override virtual] void QAxWidget::clear()

Переопределяет QAxBase::clear().

Закрывает ActiveX-компонент.

[override 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.

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

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

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

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

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

[override virtual] QSize QAxWidget::minimumSizeHint() const

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

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

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

[override 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.11/qaxwidget.html

Spec-Zone.ru

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