一.简单介绍:

1.ActiveQt包含QAxContainer和QAxServer组件。

  1) QAxContainer允许使用COM对象,并且可以将ActiveX控件嵌入到Qt程序中去。

    QAxContainer是有三个类组成的。分别是:

    QAxObject封装了COM对象

    QAxWidget封装了ActiveX控件

    QAxBase是QAxObject和QAxWidget的父类,它实现了封装COM的核心函数。

    通过调用QAxWidget的property()方法和SetProperty方法可以获取和设置ActiveX控件的属性。

    调用ActiveX控件的方法属性需要COM中的数据类型和Qt中的数据类型的转换。COM中数据类型和Qt中的数据类型对应的表格:

    

  2) QAxServer可以将我们写的Qt控件导出为COM对象或者是ActiveX控件。

  3)一个简单例子:

    #include <QApplication>

    #include <QtGui>

    #include <QAxWidget>

    int main(int argc, char *argv[])

    {

        QApplication a(argc, argv);

      QAxWidget *flash = new QAxWidget(0,0);

        flash->resize(500,80);

        flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}"));

        flash->dynamicCall("LoadMovie(long,string)",0,"F:/1.swf");

        flash->show();

        return a.exec();

    }

  

二.方法

1.首先在windows中注册idldrawx3.ocx

  进入cmd,输入以下命令:(注意后面的路径要带双引号)

  regsvr32  “C:\Program Files\ITT\IDL\IDL81\bin\bin.x86\idldrawx3.ocx”

2.Qt中调用ActiveX:

  1)通过Qt设计师将 QAxWidget放到界面上;

  2)右键->设置控件;

  3)选择系统中注册的ActiveX控件IDLDrawWidget Control 3.0;

  4)如果工程中没有添加ActiveQt支持,可以通过Qt->Qt Project Settings->Qt Modules 然后勾选ActiveQt container支持;如果是Qt Creator 工程,则需要在.pro文件中
    添加: CONFIG  += qaxcontainer

3. ActiveX中接口的调用,通过dynamicCall()实现;

  dynamicCall()最多传递八个QVariant类型的参数,并且返回类型也是QVariant。

Visual Studio下Qt调用IDL的更多相关文章

  1. Visual Studio下Qt编程中对中文的处理

    Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...

  2. Visual Studio下使用jQuery的10个技巧

    广泛流行的jQuery是一个开源的,跨浏览器和兼容CSS 3的JavaScript库,你可以用它简化你的JavaScript编码任务和操作(添加,编辑和删除)HTML内容中的DOM元素,本文介绍10个 ...

  3. Cocos开发中Visual Studio下HttpClient开发环境设置

    Cocos2d-x 3.x将与网络通信相关的类集成到libNetwork类库工程中,这其中包括了HttpClient类.我们需要在Visual Studio解决方案中添加libNetwork类库工程. ...

  4. Cocos开发中Visual Studio下libcurl库开发环境设置

    我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...

  5. Visual Studio下SQLite数据库开发环境设置

    由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...

  6. Cocos发展Visual Studio下一个libcurl图书馆开发环境的搭建

    我们解释win32在Visual Studio下一个libcurl图书馆开发环境的搭建.Cocos2d-x发动机实际上与Win32在访问libcurl库.Cocos2d-x 3.x在libcurl库文 ...

  7. Cocos发育Visual Studio下一个HttpClient开发环境设置

    Cocos2d-x 3.x相关类集成到网络通信libNetwork图书馆project于.这其中包括:HttpClient分类. 我们需要在Visual Studio溶液中加入libNetwork图书 ...

  8. CMake在Visual Studio下保持目录结构

    CMake在Visual Studio下保持目录结构 原理 主要通过CMAKE自带函数source_group来设定. 需要把add_executable()函数进行封装,包裹一层source_gro ...

  9. Visual Studio下运行PowerShell脚本自增小版本号并发布到Nuget服务器上

    Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上 附脚本[ update.ps1文件内容]: $ ...

随机推荐

  1. 常见的css3缩放效果

    transform的属性scale(x,y) 对元素进行缩放,x表示水平方向缩放倍数,y表示垂直方向的缩放倍数,y是可选参数,不设置,则表示两个方向的倍数是一样的,基点一样在元素的中心位置. 还有单向 ...

  2. Android从零单排之自动跟新

    自动更新原理 当我们发布我们的应用程序的时候,肯定会想到后续版本的更新,那么该怎么对我们的程序进行更新呢? 更新APK的原理实际上就是比较程序中的AndroidManifest.xml中的versio ...

  3. Spring AOP 创建增强类

    AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring支持5种类型的增强:     1)前置增强:org.springframework.aop.BeforeAd ...

  4. Spring中通配符

    一.加载路径中的通配符:?(匹配单个字符),*(匹配除/外任意字符).**/(匹配任意多个目录) classpath:app-Beans.xml 说明:无通配符,必须完全匹配   classpath: ...

  5. Kernel rest_init相关

    Linux系统里,有些进程只有kernel部分的代码,即由一个kernel函数进入,在sched的时候,将其与用户进程同等对待. PID为0的叫swapper或sched进程,对应函数为rest_in ...

  6. 《c程序设计语言》读书笔记--统计字符数

    #include <stdio.h> #define MAXLINE 1000 int getline(char line[],int maxline); void copy(char t ...

  7. javascript 一个关于时间排序的算法(一个页面多个倒计时排序)

    上周要做一个活动页面 秒杀列表页 需要一个时间的算法排序 自己琢磨了半天想了各种算法也没搞出来,后来问了下一个后台的php同学 他写了个算法给我看了下 ,刚开始看的时候觉得这就是个纯算法,不能转化成页 ...

  8. FTP命令详解

    FTP的命令行格式为:ftp -v -d -i -n -g [主机IP或者主机名],其中 -v显示远程服务器的所有响应信息: -n限制ftp的自动登录,即不使用: .n etrc文件: -d使用调试方 ...

  9. C# WebBrowser 设置代理完全解决方案

    微软webbrowser控件也就是IE插件,他的所有功能就像IE类似,当然设置也是一样的,下面介绍下webbrowser如何设置代理,可不要用这个对抗广告联盟哦 You can change the ...

  10. tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...