# Qt QAxObject 操作 ActiveX com组件

news/2024/2/27 22:56:52

- 起因是自己需要写一个Qt操作office word文档的类,

  总结出了QAxObject相关方法的使用模板

- 大家可以对支持ActiveX的程序查程序API文档后对号入座

- 程序名可以使用ApplicationName.Application或者Uuid

        - 使用ApplicationName的话可以到QtCreator的designer中

          拖拽一个QAxObject到窗口, 再右键添加控件, 就可以看到支持的控件

        - 找不到想要的控件的, 可以自己到注册表查询Uuid

```c++

#include <QAxObject>void qax_activeX_example_code()
{QAxObject* obj2 = new QAxObject();obj2->setControl("ApplicationName.Application|Uuid");/* 间接获得程序接口 */QAxObject* obj = new QAxObject("ApplicationName.Application|Uuid");/* 直接获得程序接口 */obj->dynamicCall("Function()");/* dynamicCall时prototype必须显式的使用()表示Function是方法 */int arg = 0, arg2 = 1;obj->dynamicCall("Function(Arg, Arg2)", arg, arg2);/* 带参的dynamicCall */obj->setProperty("Attribute", arg); /* 设置属性 */int num = obj->property("Attribute").toInt();/* 获取相应属性(int) */ (void)num;bool can = obj->property("Attribute2").toBool();/* 获取相应属性(bool) */ (void)can;QString qstr2 = obj->property("Attribute3").toString();char* ch_str2 = (char*)qstr2.toStdString().c_str();/* 获取相应属性(QString --> char*) */ (void)ch_str2;char* ch_str = (char*)obj->property("Attribute3").toString().toStdString().c_str();/* 获取相应属性(char*) */ (void)ch_str;QAxObject* sub_obj = obj->querySubObject("Parent.Sub");/* 从obj获取子对象(无参) */ (void)sub_obj;QAxObject* sub_obj2 = obj->querySubObject("Parent.Sub(arg)", arg);/* 从obj获取子对象(有参) */ (void)sub_obj2;QAxObject* sub_obj2 = obj->querySubObject("Sub(arg)", arg);/* 从obj获取子对象(有参), 也有可能是这种形式* 以所调程序对象的方法prototype为准*/ (void)sub_obj2;
}

```


http://www.ppmy.cn/news/432.html

相关文章

华为数字化转型之道 方法篇 第五章 视IT为投资,用产品思维管理IT

第五章 视IT为投资,用产品思维管理IT 5.1 数字时代IT系统的重新定位 比较传统信息化和数字化转型下的IT系统特征,我们发现业务环境、IT能力、业务和IT的关系都发生了巨大的变化(见图5-1) 从“管理系统”到“作业平台” 传统信息化下的IT系统往往侧重于信息记录、流程固化…

Go学习笔记 -- fmt常用打印方法及占位符介绍

文章目录普通打印自带换行格式化打印占位符普通占位符字符串占位符整数占位符浮点数占位符其他占位符普通打印 Fprint 接受一个输出流和多个写入值。 拼接字符串并打印&#xff0c;如果前后两个操作值全都不是 string 类型的时候&#xff0c;自动添加空格分割。 函数返回打印的…

使用markdown画流程图、时序图等

概述 能表示的图类型还有很多&#xff0c;比如&#xff1a; sequenceDiagram时序图 classDiagram类图 stateDiagram:状态图 erDiagram&#xff1a;ER图 gantt&#xff1a; 甘特图 pie&#xff1a;饼图 requirementDiagram: 需求图 流程图 流程图代码以「graph 《布局…

【Pandas数据处理100例】(九十九):Pandas使用at_time()筛选出特定时间点的数据行

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

自然算法 - AI面试基础补全

手撕BP神经网络手写Bert和Transformer&#xff08;BERT很细节的地方&#xff0c;比如文字标签CLS&#xff0c;par&#xff09;学习pytorch&#xff0c;tensorflow AI算法岗位 可看网站 牛客网站 面经回复 github 项目连接 算法工程师岗位必备知识 问答 ELMO、GPT、…

2183440-36-8,APN-C3-PEG4-alkyne 性能稳定功能连接体

一、APN-C3-PEG4-alkyne物理数据&#xff1a; CAS&#xff1a;2183440-36-8 | 中文名&#xff1a;APN-C3-四聚乙二醇-炔基 |英文名&#xff1a; APN-C3-PEG4-alkyne 结构式&#xff1a; 二、APN-C3-PEG4-alkyne试剂反应原理&#xff1a; 西安凯新生物科技有限公司供应的&…

基于Linux centos7部署 Sonic(简版)

sonic是最近很火的开源云真机平台&#xff0c;支持分布式部署&#xff0c;功能也非常丰富&#xff0c;我们需要一套环境远程执行自动化测试&#xff0c;于是&#xff0c;就部署了一套。当然&#xff0c;官方有项目详细的部署文档&#xff0c;本文结合我们自己的情况选择一台Lin…

Python破解WIFI密码完整源代码,实测可成功破解

目录 # 修正记录&#xff1a;2022-12-01 1&#xff0c;先安装Python环境(这个不用多说了吧) 2&#xff0c;安装PyWifi 3,自己手工整理高频弱口令&#xff0c;不建议程序生成的字典&#xff0c;生成的字典成功率实在太低。 4&#xff0c;自己生成字典的算法&#xff1a; 5…

cpu设计和实现(协处理器cp0)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 除了通用计算器负责控制和计算之外&#xff0c;cpu如果需要正常有序地运行&#xff0c;还需要一定地协处理器来帮助完成对应地工作。在mips下面&am…

前端入门--JavaScript篇

JavaScript基础 文章目录JavaScript基础JavaScript是什么JavaScript的使用方式JavaScript的运行过程JS的语法三种语言的注释输入输出JS中的变量JS中基本的数据类型number类型string字符串undefined类型null类型运算符数组数组的创建数组的使用数组新增元素函数对象之前学过了HT…

Bug: conda环境与jupyter notebook kernel核环境不一致

问题 一般在服务器上进行环境安装的时候有多种方式&#xff0c;比如docker, conda等。conda肯使用起来更加简便&#xff0c;docker更适合服务器部署的时候使用。 本文记录在使用conda时候出现的问题&#xff0c;jupter notebook中的环境不一致导致的。 首先conda创建环境 co…

vue页面批量引入组件

<template><div><template v-for"(item) in names"><component :is"item" :key"item" /></template></div> </template> <script> // 可行了 import path from path// require.context(param1,…

如何理解CRC循环冗余校验——图解CRC算法模型和C语言实现

如何理解CRC循环冗余校验 循环冗余校验&#xff08;英语&#xff1a;Cyclic redundancy check&#xff0c;通称“CRC”&#xff09;是一种产生定长校验码的算法&#xff0c;主要用来检测或校验数据传输或者保存后可能出现的错误。 它真的太常见了&#xff0c;上至应用软件通信…

Nginx加载Lua脚本链接mysql

1、nginx加载lua脚本方法可参我的这篇文章 Nginx安装Openresty加载Lua代码_IT东东歌的博客-CSDN博客 2、测试代码 官网 https://github.com/openresty/lua-resty-mysql local mysql require "resty.mysql" local db, err mysql:new() if not db then ngx.sa…

Spring Cloud Netfix Hystrix(断路器)

一、灾难性雪崩 造成灾难性雪崩效应的原因&#xff0c;可以简单归结为下述三种&#xff1a; 服务提供者&#xff08;Application Service&#xff09;不可用。如&#xff1a;硬件故障、程序BUG、缓存击穿、并发请求量过大等。 重试加大流量。如&#xff1a;用户重试、代码重试…

20uec++多人游戏【小球与玩家互动】

为小球添加生命值组件和伤害处理函数 //生命值组件UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category "Components")class USHealthComponent * HealthComp;//伤害处理函数UFUNCTION()void HandleTakeAnyDamage(USHealthComponent * OwnerHealthComp, float…

springboot + dubbo 整合Sentinel限流

一、前言 限流对一个生产环境的系统来说&#xff0c;具有重要的意义&#xff0c;限流的目的是为了保护系统中的某些核心业务资源不被瞬间的大并发流量冲垮而采取的一种措施&#xff0c;因此一个成熟的架构设计方案&#xff0c;限流也需要纳入到架构设计和规划中。 二、常用的限…

【贪心算法】背包问题

题目&#xff1a;有一个背包&#xff0c;背包容量是M150。有7个物品&#xff0c;物品可以分割成任意大小。 要求尽可能让装入背包中的物品总价值最大&#xff0c;但不能超过总容量。 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 4…

【C++】STL—vector的常用接口

文章目录前言一、vector介绍二、vector的使用1. vector的定义2. vector的遍历2.1.operator[ ]2.2.迭代器2.3.范围for3. vector的空间增长问题3.1.size和capacity3.2.max_size和empty3.3.reserve3.4.resize3.5.Shrink to fit4. vector的增删查改4.1.push_back和pop_backinsert和…

React学习笔记二

目录 React组件 一、两种创建方式 函数组件 类组件 二、将组件放在独立的js文件中 三、组件的样式 四、ref 获取 dom 五、列表渲染&#xff08;一中有记&#xff0c;这里就省略&#xff09; 六、条件渲染 七、事件处理 八、状态 state 组件中的数据 九、属性prop…
最新文章