当前位置: 首页 > article >正文

qt QAxWidget

QAxWidget 是 Qt 中用于嵌入 ActiveX 控件或 COM 对象的类,主要用于 Windows 平台。以下是其使用方法的详细步骤和示例:

1. 环境配置

.pro 文件中添加 axcontainer 模块:

QT += axcontainer

2. 基本使用

创建控件实例
#include <QAxWidget>QAxWidget *axWidget = new QAxWidget(this);
加载 ActiveX 控件

通过 ProgIDCLSID 指定控件:

// 使用 ProgID(例如 Windows Media Player)
axWidget->setControl("WMPlayer.OCX.7");// 或使用 CLSID
axWidget->setControl("{6BF52A52-394A-11D3-B153-00C04F79FAA6}");
设置属性和调用方法
  • 设置属性
    axWidget->setProperty("URL", "C:/music.mp3");
    
  • 调用方法
    axWidget->dynamicCall("play()");
    
获取属性值
QVariant volume = axWidget->property("Volume");

3. 处理事件

连接 ActiveX 控件的事件到 Qt 槽函数:

// 连接播放状态改变事件
connect(axWidget, SIGNAL(PlayStateChange(int)), this, SLOT(onPlayStateChanged(int)));// 槽函数定义
void MyClass::onPlayStateChanged(int state) {qDebug() << "Playback state changed:" << state;
}

4. 访问子对象

使用 querySubObject 访问子对象:

QAxObject *settings = axWidget->querySubObject("settings");
if (settings) {settings->dynamicCall("setVolume(int)", 50);delete settings;
}

5. 错误处理

检查控件是否加载成功:

if (axWidget->isNull()) {qDebug() << "Failed to load ActiveX control.";
}

6. 示例:嵌入 Windows Media Player

QAxWidget *wmp = new QAxWidget(this);
wmp->setControl("WMPlayer.OCX.7");
wmp->setProperty("URL", "C:/music.mp3");
wmp->resize(400, 300);  // 设置控件大小
wmp->show();  // 显示控件

注意事项

  • 平台限制:仅支持 Windows。
  • 控件注册:确保目标机器已注册所需控件(如使用 regsvr32 注册 .dll)。
  • 文档参考:查阅对应 ActiveX 控件的文档以获取正确的方法、属性和事件名称。

常见问题

  • QAxWidget 加载失败:检查 ProgID/CLSID 是否正确,控件是否已注册。
  • 方法调用失败:确认参数类型和数量与 COM 接口一致。
  • 内存管理:使用 deleteLater() 避免内存泄漏。

通过以上步骤,您可以在 Qt 应用中集成 ActiveX 控件,实现丰富的功能扩展。

相关文章:

qt QAxWidget

QAxWidget 是 Qt 中用于嵌入 ActiveX 控件或 COM 对象的类&#xff0c;主要用于 Windows 平台。以下是其使用方法的详细步骤和示例&#xff1a; 1. 环境配置 在 .pro 文件中添加 axcontainer 模块&#xff1a; QT axcontainer2. 基本使用 创建控件实例 #include <QAxW…...

机器学习与深度学习04-逻辑回归02

目录 前文回顾6.正则化在逻辑回归中的作用7.特征工程是什么8.逻辑回归的预测结果如何9.什么是ROC曲线和AUC值10.如何处理类不平衡问题11.什么是交叉验证 前文回顾 上一篇文章地址&#xff1a;链接 6.正则化在逻辑回归中的作用 逻辑回归中&#xff0c;正则化是一种用于控制模…...

CQF预备知识:Python相关库 -- NumPy 基础知识 - 通用函数

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 通用函数 另请参阅 通用函数&#xff08;ufunc&#xff09; 通用函数&#xff08;或简称 ufunc&#xff09;是一种对 ndarrays 进行逐元素操…...

基于ELK的分布式日志实时分析与可视化系统设计

目录 一、ELK平台介绍 1.ELK概述 2.Elasticsearch 3.Logstash 4.Kibana 二、部署ES群集 1.资源清单 2.基本配置 3.安装Elasticsearch&#xff08;elk1上、elk2上、elk3上&#xff09; 4.安装logstash&#xff08;elk1上&#xff09; 5.Filebeat 6.安装Kibana&#x…...

@Async 注解 走的是主线程 还是子线程呢

Asyncz注解所在的包 package org.springframework.scheduling.annotation; Async 注解在Spring框架中用于标记一个方法为异步方法。当这个方法被调用时&#xff0c;它不会阻塞调用线程&#xff0c;而是会在一个单独的线程中执行。因此&#xff0c;Async 注解走的是子线程&…...

前端面经 React 组件常见的声明方式

react类组件和函数式组件 函数组件返回值的内容就是要渲染的内容 函数组件使用useState更新状态 &#xff0c;使用类中变量更新 常见hook 官方 &#xff1a; useEffect 处理副作用&#xff0c;请求APIuseState 更新UIuseLayout 同步更新&#xff0c;会阻塞进程&#xff0c…...

酒店管理系统设计与实现

本科毕业设计(论文) 设计(论文)题目 酒店管理系统设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 李建 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指…...

OpenCV---pointPolygonTest

一、基本概念与用途 pointPolygonTest 是 OpenCV 中用于判断点与多边形关系的重要函数&#xff0c;常用于&#xff1a; 目标检测&#xff1a;判断像素点是否属于检测到的轮廓区域碰撞检测&#xff1a;检测物体是否重叠图像分割&#xff1a;确定点是否在分割区域内几何分析&am…...

Qt 的简单示例 -- 地址簿

这个工程里有两个窗口&#xff0c;都是QWidget派生的窗口 主窗口&#xff1a; 1. 运用了布局&#xff0c;按钮控件&#xff0c;单行编辑框&#xff0c;富文本编辑框等窗口部件&#xff1b; 2. 运用了 QMap 类&#xff1b; 3. 实现了点击按钮弹出子窗口的功能&#xff0c;这里子…...

Linux 下 C 语言实现工厂模式

Linux 下 C 语言实现工厂模式&#xff1a;设计理念与实战 &#x1f9e0; 一、工厂模式简介什么是工厂模式&#xff1f;C 语言实现设计模式的挑战 &#x1f3d7;️ 二、实现简单工厂模式&#xff08;Simple Factory&#xff09;1. 定义传感器接口&#xff08;device.h&#xff0…...

什么是DevOps的核心目标?它如何解决传统开发与运维之间的冲突?​

在当今数字化转型加速的时代&#xff0c;DevOps 已成为软件开发领域备受瞩目的明星理念。今天&#xff0c;本文将聚焦于 DevOps 的核心目标&#xff0c;并深入探讨它如何巧妙化解传统开发与运维之间的冲突&#xff0c;为大家揭开 DevOps 的神秘面纱并分享实用经验。本次介绍的与…...

RocketMQ 死信队列(DLQ)实战:原理 + 开发 + 运维 + 架构应用指南

&#x1f680;RocketMQ 死信队列&#xff08;DLQ&#xff09;实战&#xff1a;原理 开发 运维 架构应用指南 第一章&#xff1a;什么是死信队列&#xff08;DLQ&#xff09;&#xff1f; 1.1 死信队列定义 在 RocketMQ 中&#xff0c;死信队列&#xff08;Dead Letter Que…...

Android studio 查看aar源码出现/* compiled code */

如图查看aar源码时看不到具体实现&#xff0c;在排除是sdk版本导致的问题后&#xff0c;下面说解决方法 打开设置&#xff0c;找到插件 输入decompiler 搜索 这个是自带的反编译工具&#xff0c;启用就好了...

用HTML5+JavaScript实现汉字转拼音工具

用HTML5JavaScript实现汉字转拼音工具 前一篇博文&#xff08;https://blog.csdn.net/cnds123/article/details/148067680&#xff09;提到&#xff0c;当需要将拼音添加到汉字上面时&#xff0c;用python实现比HTML5JavaScript实现繁琐。在这篇博文中用HTML5JavaScript实现汉…...

基于Java,SpringBoot,Vue,UniAPP医院预约挂号买药就诊病例微信小程序系统设计

摘要 随着医疗信息化的不断推进以及“互联网医疗”模式的广泛普及&#xff0c;传统医院挂号流程中存在的排队时间长、资源分配不均等问题日益凸显&#xff0c;急需通过数字化手段加以解决。本研究设计并实现了一套基于Java、SpringBoot、Vue与UniAPP技术栈的医院预约挂号微信小…...

ONNX模型的动态和静态量化

引言  通常我们将模型转换为onnx格式之后&#xff0c;模型的体积可能比较大&#xff0c;这样在某些场景下就无法适用。最近想在移动端部署语音识别、合成模型&#xff0c;但是目前的效果较好的模型动辄几个G&#xff0c;于是便想着将模型压缩一下。本文探索了两种压缩方法&…...

PHP 垃圾回收高级特性

PHP 垃圾回收高级特性 1. 循环引用与内存泄漏 单纯的引用计数在遇到循环引用时会导致内存泄漏&#xff0c;主要原因是引用计数无法正确识别那些仅通过循环引用相互关联但实际上已经不可达的对象。 1.1 引用计数的基本原理 引用计数是一种内存管理机制&#xff0c;通过维护每…...

OpenFeign vs MQ:微服务通信如何选型?详解同步与异步的适用场景

OpenFeign vs MQ&#xff1a;微服务通信如何选型&#xff1f;详解同步与异步的适用场景 引言 在微服务架构中&#xff0c;服务之间的通信方式直接影响系统的性能、可靠性和可维护性。常见的通信方式有 OpenFeign&#xff08;同步HTTP调用&#xff09; 和 MQ&#xff08;消息队…...

如何用命令行将 PDF 表格转换为 HTML 表格

本文将介绍如何使用命令行将可填写的 PDF 表单转换为 HTML 表单。只需几行代码即可完成转换。将可填写的 PDF 表单转换为 HTML 表单后&#xff0c;你可以在网页上显示这些表单。本指南使用 FormVu 来演示转换过程。 使用命令行将可填写 PDF 表单转换为 HTML 表单 你可以通过命…...

html5的响应式布局的方法示例详解

以下是HTML5实现响应式布局的5种核心方法及代码示例: 1. 媒体查询(核心方案) /* 默认样式(移动优先) */ .container {padding: 15px; }/* 中等屏幕(平板) */ @media (min-width: 768px) {.container {padding: 30px;max-width: 720px;} }/* 大屏幕(桌面) */ @media …...

如何用Python抓取Google Scholar

文章目录 [TOC](文章目录) 前言一、为什么要抓取Google Scholar&#xff1f;二、Google Scholar 抓取需要什么三、为什么代理对于稳定的抓取是必要的四、一步一步谷歌学者抓取教程4.1. 分页和循环4.2. 运行脚本 五、完整的Google Scholar抓取代码六、抓取Google Scholar的高级提…...

电脑革命家测试版:硬件检测,6MB 轻量无广告 清理垃圾 + 禁用系统更新

各位电脑小白和大神们&#xff0c;我跟你们说啊&#xff01;有个超牛的东西叫电脑革命家测试版&#xff0c;这是吾爱破解论坛的开发者搞出来的免费无广告系统工具集合&#xff0c;主打硬件检测和系统优化&#xff0c;就像是鲁大师这些软件的平替。下面我给你们唠唠它的核心功能…...

Wireshark对usb设备进行抓包找不到USBPcap接口的解决方案

引言 近日工作需要针对usb设备进行抓包&#xff0c;但按照wireshark安装程序流程一步步走&#xff0c;即使勾选了安装USBPcap安装完成后开启wireshark依然不显示USBPcap接口&#xff0c;随设法进行解决。 最终能够正常显示USBPcap接口并能够正常使用进行抓包 解决方案&#x…...

题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结

题目 3298: 蓝桥杯2024年第十五届决赛真题-兔子集结 时间限制: 2s 内存限制: 192MB 提交: 2499 解决: 309 题目描述 在森林幽静的一隅&#xff0c;有一村落居住着 n 只兔子。 某个月光皎洁的夜晚&#xff0c;这些兔子列成一队&#xff0c;准备开始一场集结跳跃活动。村落中…...

Unity开发之Webgl自动更新程序包

之前让客户端更新webgl程序是在程序里写版本号然后和服务器对比&#xff0c;不同就调用 window.location.reload(true);之前做的客户端都是给企业用&#xff0c;用户数少看不出来啥问题。后来自己开发一个小网站&#xff0c;用户数量还是挺多&#xff0c;然后就会遇到各种各样的…...

深入理解设计模式之状态模式

深入理解设计模式之&#xff1a;状态模式&#xff08;State Pattern&#xff09; 一、什么是状态模式&#xff1f; 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式。它允许一个对象在其内部状态发生改变时&#xff0c;改变其行为&#xff08;即表现出不…...

Socket 编程 UDP

目录 1. UDP网络编程 1.1 echo server 1.1.1 接口 1.1.1.1 创建套接字 1.1.1.2 绑定 1.1.1.3 bzero 1.1.1.4 htons&#xff08;主机序列转网络序列&#xff09; 1.1.1.5 inet_addr&#xff08;主机序列IP转网络序列IP&#xff09; 1.1.1.6 recvfrom&#xff08;让服务…...

Jenkins实践(8):服务器A通过SSH调用服务器B执行Python自动化脚本

Jenkins实践(8):服务器A通过SSH调用服务器B执行Python自动化脚本 1、需求: 1、Jenkins服务器在74上,Python脚本在196服务器上 2、需要在服务器74的Jenkins上调用196上的脚本执行Python自动化测试 2、操作步骤 第一步:Linux Centos7配置SSH免密登录 Linux Centos7配置S…...

Spring AI系列之Spring AI 集成 ChromaDB 向量数据库

1. 概述 在传统数据库中&#xff0c;我们通常依赖精确的关键词或基本的模式匹配来实现搜索功能。虽然这种方法对于简单的应用程序已经足够&#xff0c;但它无法真正理解自然语言查询背后的含义和上下文。 向量存储解决了这一限制&#xff0c;它通过将数据以数值向量的形式存储…...

lua的注意事项2

总之&#xff0c;下面的返回值不是10&#xff0c;a&#xff0c;b 而且...