Класс QAxBaseWidget
QAxBaseWidget предоставляет статические свойства и сигналы для QAxWidget. Подробнее...
| Заголовок: | #include <QAxBaseWidget> |
| CMake: | find_package(Qt6 COMPONENTS AxContainer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
| qmake: | QT += axcontainer |
| С тех пор: | Qt 6.0 |
| Наследует: | QWidget и QAxObjectInterface |
| Наследован(а) от: |
Свойства
- classContext : const ulong
- control : const QString
Сигналы
| void | exception(int code, const QString &source, const QString &desc, const QString &help) |
| void | propertyChanged(const QString &name) |
| void | signal(const QString &name, int argc, void *argv) |
Подробное описание
Документация по свойствам
classContext : const ulong
Это свойство содержит контекст, в котором будет выполняться ActiveX-контроль (по умолчанию CLSCTX_SERVER).
Свойство влияет на аргумент "dwClsContext" при вызове CoCreateInstance. Это можно использовать для управления запуском в процессе или вне процесса для контроллеров, поддерживающих оба варианта. Кроме того, его можно использовать для изменения/сокращения прав контроля при использовании CLSCTX_ENABLE_CLOAKING и маркера имперсонации.
Обратите внимание, что его необходимо установить перед setControl(), чтобы он имел какой-либо эффект.
См. также control.
control : const QString
Это свойство содержит имя COM-объекта, обернутого этим объектом QAxBaseWidget.
Установка этого свойства инициализирует COM-объект. Любой ранее установленный COM-объект закрывается.
Самый эффективный способ установить это свойство — использовать UUID зарегистрированного компонента, например:
ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}"); Второй по эффективности способ — использовать имя зарегистрированного элемента управления (с номером версии или без него), например:
ctrl->setControl("MSCal.Calendar"); Самый медленный, но самый простой способ — использовать полное имя элемента управления, например:
ctrl->setControl("Calendar Control 9.0"); Также возможно инициализировать объект из файла, например:
ctrl->setControl("c:/files/file.doc"); Если используется UUID компонента, можно использовать следующие шаблоны для инициализации элемента управления на удаленном компьютере, для инициализации лицензированного элемента управления или для подключения к работающему объекту:
- Для инициализации элемента управления на другом компьютере используйте следующий шаблон:
<domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02} - Для инициализации лицензированного элемента управления используйте следующий шаблон:
{8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey> - Для подключения к уже работающему объекту используйте следующий шаблон:
{8E27C92B-1264-101C-8A2F-040224009C02}&
Первые два шаблона можно комбинировать, например, для инициализации лицензированного элемента управления на удаленном компьютере:
ctrl->setControl("DOMAIN/user:password@server/{8E27C92B-1264-101C-8A2F-040224009C02}:LicenseKey"); Функция чтения элемента управления всегда возвращает UUID элемента управления (включая ключ лицензии) и имя сервера, но не пользователя, домен или пароль.
См. также classContext.
Документация по функциям-членам
[signal] void QAxBaseWidget::exception(int code, const QString &source, const QString &desc, const QString &help)
Этот сигнал излучается, когда COM-объект генерирует исключение при вызове его с помощью интерфейса OLE automation IDispatch. code, source, desc и help предоставляют информацию об исключении, предоставленную COM-сервером, и могут использоваться для предоставления полезной обратной связи конечному пользователю. help включает файл справки и идентификатор контекста справки в скобках, например, "имя_файла [id]".
См. также QAxBaseObject::exception().
[signal] void QAxBaseWidget::propertyChanged(const QString &name)
Если COM-объект поддерживает уведомления о свойствах, этот сигнал излучается, когда изменяется свойство, названное name.
См. также QAxBaseObject::propertyChanged().
[signal] void QAxBaseWidget::signal(const QString &name, int argc, void *argv)
Этот универсальный сигнал излучается, когда COM-объект издает событие name. argc — это количество параметров, предоставленных событием (DISPPARAMS.cArgs), а argv — указатель на значения параметров (DISPPARAMS.rgvarg). Обратите внимание, что порядок значений параметров меняется, т. е. последний элемент массива является первым параметром в функции.
void Receiver::slot(const QString &name, int argc, void *argv)
{
VARIANTARG *params = (VARIANTARG*)argv;
if (name.startsWith("BeforeNavigate2(")) {
IDispatch *pDisp = params[argc-1].pdispVal;
VARIANTARG URL = *params[argc-2].pvarVal;
VARIANTARG Flags = *params[argc-3].pvarVal;
VARIANTARG TargetFrameName = *params[argc-4].pvarVal;
VARIANTARG PostData = *params[argc-5].pvarVal;
VARIANTARG Headers = *params[argc-6].pvarVal;
bool *Cancel = params[argc-7].pboolVal;
}
} Используйте этот сигнал, если событие имеет параметры недопустимых типов данных. В противном случае подключитесь непосредственно к сигналу name.
См. также QAxBaseObject::signal().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qaxbasewidget.html