Spec-Zone.ru › Qt 5.9

Класс 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
  • 214 открытых функций унаследовано от QWidget
  • 19 открытых функций унаследовано от QAxBase
  • 32 открытых функций унаследовано от 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

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

  • 59 свойств унаследовано от 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/qt-5.9/qaxwidget.html

Spec-Zone.ru

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