Spec-Zone.ru › Qt 5.12

Класс 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() override
virtual QAxAggregated * createAggregate()
bool doVerb(const QString &verb)

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

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

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

const QMetaObject staticMetaObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 9 статических открытых членов, унаследованных от 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

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

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

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

Spec-Zone.ru

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