QAxBaseWidget 类
QAxBaseWidget 提供了静态属性和信号,用于 QAxWidget。 更多...
头文件 | #include <QAxBaseWidget> |
CMake | find_package(Qt6 REQUIRED COMPONENTS AxContainer) 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)。
此属性影响调用 CoCreateInstance 时的 "dwClsContext" 参数。这可以用来控制支持这两种选择的自定义程序(in-proc vs. out-of-proc)的启动。此外,它还可以与 CLSCTX_ENABLE_CLOAKING 和一个模拟令牌一起使用来修改/减少控件权限。
注意,它必须在调用 setControl() 之前设置才有任何效果。
另请参阅 control。
control : const QString
此属性保存由此 QAxBaseWidget 对象封装的 COM 对象的名称。
设置此属性初始化 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)
当使用OLE自动化接口IDispatch调用COM对象时抛出异常时,这个信号将被发射。code、source、desc 和 help 提供了COM服务器提供的异常信息,可用于向最终用户提供有用的反馈。help 包括帮助文件和括号中的帮助上下文ID,例如 "filename [id]"。
[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。
© 2024 The Qt Company Ltd. 本文档中包含的贡献的文档版权属于各自的拥有者。提供的文档受Free Software Foundation 发布的 GNU Free Documentation License version 1.3 条款的许可。Qt和相应的标志是The Qt Company Ltd在芬兰和其他全球国家的商标。所有其他商标均属于其各自的拥有者。