Qt-QAxWidget

QAxBase

                QAxWidget

                QAxObject

QAxBase类是一个抽象类,它提供了初始化和访问COM对象的API。
QAxBase是一个不能直接使用的抽象类,通过子类QAxObject和QAxWidget实例化。
此类提供了通过其IUnknown实现直接访问COM对象的API。如果COM对象实现IDispatch接口,则该对象的属性和方法将作为Qt属性和槽可用。

QAxWidget类是包装ActiveX控件的QWidget。
QAxWidget可以实例化为一个空对象,使用它应该包装的ActiveX控件的名称,或者使用指向ActiveX控件的现有接口指针。
ActiveX控件的属性、方法和事件仅使用QAxBase支持的数据类型,可作为Qt属性、槽和信号用。
基类QAxBase提供了通过IUnknown指针直接访问ActiveX的API。
QAxWidget是一个QWidget,通常可以这样使用,例如,它可以组织在widget层次结构和布局中,或者充当事件过滤器。
支持标准控件属性,例如enabled,但它依赖于ActiveX控件来实现对环境属性的支持,例如调色板或字体。QAxWidget试图提供必要的提示。
但是,您不能重新实现特定于Qt的事件处理程序,如mousePressEvent或keyPressEvent,并期望它们被可靠地调用。
嵌入式控件完全覆盖QAxWidget,并且通常处理用户界面本身。使用特定于控件的API(即监听控件的信号),或使用标准COM技术,如窗口过程子类化。
QAxWidget还继承了QAxBase的大部分与ActiveX相关的功能,特别是dynamicCall()和querySubObject()。

QAxObject类提供包装COM对象的QObject。
QAxObject可以实例化为空对象,使用它应该包装的COM对象的名称,或者使用指向表示现有COM对象的IUnknown的指针。
如果COM对象实现IDispatch接口,则该对象的属性、方法和事件将作为Qt属性、槽和信号可用。
基类QAxBase提供了通过IUnknown指针直接访问COM对象的API。
QAxObject是一个QObject,可以这样使用,例如,它可以组织在对象层次结构中,接收事件并连接到信号和时隙。
QAxObject还继承了QAxBase的大部分与ActiveX相关的功能,特别是dynamicCall()和querySubObject()。
警告:您可以将QAxObject子类化,但不能在子类中使用Q_OBJECT宏(生成的moc文件不会编译),因此不能添加更多的信号、槽或属性。
此限制是由于运行时生成的元对象信息造成的。要解决这个问题,请将QAxObject聚合为QObject子类的成员。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值