zoukankan      html  css  js  c++  java
  • Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件

    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693

    长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808

     

    前言

      开发Activex控件,以供其他应用程序调用,本篇章讲解Qt调用Activex控件,不限于Qt开发的Activex控件。

     

    Demo

      在这里插入图片描述

     

    QAxWidget

    概述

      QAxWidget类是包装ActiveX控件的QWidget。
      QAxWidget可以实例化为空对象,带有它应该包装的ActiveX控件的名称,或者带有指向ActiveX控件的现有接口指针。ActiveX控件的属性、方法和事件仅使用QAxBase支持的数据类型,可以作为Qt属性、插槽和信号使用。基类QAxBase提供了一个API,可以通过IUnknown指针直接访问ActiveX。
      QAxWidget是一个QWidget,通常可以这样使用,例如,它可以组织在一个widget层次结构和布局中,或者充当一个事件过滤器。支持标准小部件属性,例如enabled,但它依赖于ActiveX控件来实现对环境属性(例如palete或font)的支持。QAxWidget试图提供必要的提示。
      但是,不能重新实现特定于Qt的事件处理程序,如mousePressEvent或keyPressEvent,并期望可靠地调用它们。嵌入式控件完全覆盖QAxWidget,通常处理用户界面本身。使用特定于控件的API(即侦听控件的信号),或使用标准COM技术,如window过程子类化。
      QAxWidget还从QAxBase继承了大部分与ActiveX相关的功能,特别是dynamicCall()和querySubObject()。
      警告:可以将QAxWidget子类化,但不能在子类中使用Q_OBJECT宏(生成的moc文件将不会编译),因此无法添加更多信号、插槽或属性。这种限制是由于运行时生成的元对象信息造成的。要解决此问题,请将QAxWidget聚合为QObject子类的成员。

     

    Qt调用Activex方法

    步骤一:注册activex控件

      运行之前先要注册,使用Qt下自带的idc注册一下。

    idc -regserver activeHelloWorldDemo.dll
    

      在这里插入图片描述

    步骤二:确认activeQt控件的clsid

      查看一下,打开注册表并搜索一下,确认clsid,如下图:
      在这里插入图片描述

    "2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"
    

    步骤三:使用QAxWidget调用

    QAxWidget *pAxWidget = new QAxWidget();
    pAxWidget->resize(400, 320);
    pAxWidget->setControl("2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC");
    pAxWidget->show();
    
     

    源码

    #include <QApplication>
    #include <QAxWidget>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QAxWidget *pAxWidget = new QAxWidget();
        pAxWidget->resize(400, 320);
        pAxWidget->setControl("2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC");
        pAxWidget->show();
    
        return a.exec();
    }
    
     
  • 相关阅读:
    路由器 命令行基础
    docker 学习
    flume 配置
    CentOS 7 安装字体库 & 中文字体
    centos7 web服务器内核优化
    hive 搭建
    varnish4.1 配置文件default.vcl
    varsh4.1 安装清除cache
    jvm 配置
    centos7优化内核参数详解
  • 原文地址:https://www.cnblogs.com/qq21497936/p/14402677.html
Copyright © 2011-2022 走看看