QT QAxWidget控件 使用详解

news2024/11/28 0:43:10

        本文详细的介绍了QAxWidget控件的各种操作,例如:新建界面、使用示例、显示网页、显示pdf、显示Off、源文件详细说明其它文章等等操作。

        ActiveX控件是一种可重用的二进制组件,用于在Windows操作系统上提供特定的功能和服务。以下是一些常见的ActiveX控件的示例:1. Internet Explorer Web Browser Control:用于在应用程序中嵌入和显示Web浏览器。2. Microsoft Office组件(如Word、Excel、PowerPoint):用于在应用程序中嵌入和操作Office文档。3. Windows Media Player Control:用于在应用程序中嵌入和播放音频和视频文件。4. Adobe Flash Player Control:用于在应用程序中嵌入和播放Flash动画和视频。5. Crystal Reports Viewer Control:用于在应用程序中显示和打印Crystal Reports报表6. Windows Common Controls(如TreeView、ListView、ProgressBar):用于在应用程序中创建常见的用户界面控件。7. Microsoft DataGrid Control:用于在应用程序中显示和编辑数据表格。8. Microsoft Windows Image Acquisition Control:用于在应用程序中获取和处理图像。9. Microsoft Windows Media Encoder Control:用于在应用程序中进行音频和视频编码。

        本系列QT全面详解文章目前共有三十八篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

 本文作者原创,转载请附上文章出处与本文链接。

QT QAxWidget控件 使用详解目录

1 新建界面

2 使用示例

3 显示网页

4 显示pdf

5 显示Off

6 源文件

7 详细说明

8 其它文章


1 新建界面

2 使用示例

//    ui->axWidget->setControl("{8856F961-340A-11D0-A96B-00C04FD705A2}");
//    ui->axWidget->dynamicCall("MethodName", "123", "hello");
//    QVariant value = ui->axWidget->dynamicCall("PropertyName");

3 显示网页

    ui->axWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
    ui->axWidget->setProperty("DisplayAlerts",false);//不显示警告信息
    ui->axWidget->setProperty("DisplayScrollBars",true);//不显示滚动条
    QString webstr=QString("www.baidu.com");//设置要打开的网页
    ui->axWidget->dynamicCall("Navigate(const QString&)",webstr);//显示网页

4 显示pdf

//    QString msFilePath;
//    msFilePath = "D:/t.pdf";

//    mpAxWidgetPdf = new QAxWidget("AcroPDF.PDF", this->ui->widget);//Excel.Application //Adobe Acrobat Reader
//    mpAxWidgetOff = new QAxWidget("Word.Application", this->ui->widget_2);

//    // 创建一个QAxWidget对象,并设置其控制为Excel.Application
//    // 注释中提到不显示窗体,设置DisplayAlerts为false
//    mpAxWidgetPdf->dynamicCall("SetVisible (bool Visible)", "false");
//    mpAxWidgetPdf->setProperty("DisplayAlerts", true);
//    auto rect = ui->widget->geometry();
//    mpAxWidgetPdf->setGeometry(rect);
//    mpAxWidgetPdf->setControl(msFilePath);
//    mpAxWidgetPdf->show();

5 显示Off

//    // 创建一个QAxWidget对象,并设置其控制为Word.Application
//    // 注释中提到不显示窗体,设置DisplayAlerts为true
//    mpAxWidgetOff->dynamicCall("SetVisible (bool Visible)", "false");
//    mpAxWidgetOff->setProperty("DisplayAlerts", true);
//    rect = this->ui->widget_2->geometry();
//    mpAxWidgetOff->setGeometry(rect);
//    mpAxWidgetOff->setControl(msFilePath);
//    mpAxWidgetOff->show();

6 源文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAxWidget>

//加入GBK申明,否则中文乱码 全局使用GBK文件操作因为有中文所以使用
#pragma execution_character_set("utf-8")

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QString Title;
    QString Version;
    QString BlogText;

    QAxWidget* mpAxWidgetPdf;
    QAxWidget* mpAxWidgetOff;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QVariant>
//#include "office.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    Title = "QT QAxWidget  CSDN 双子座断点 ";
    Version = "V 1.0 ";
    BlogText = "https://blog.csdn.net/qq_37529913?type=lately/";
    setWindowTitle(Title + Version + BlogText);

//    ui->axWidget->setControl("{8856F961-340A-11D0-A96B-00C04FD705A2}");
//    ui->axWidget->dynamicCall("MethodName", "123", "hello");
//    QVariant value = ui->axWidget->dynamicCall("PropertyName");

//    qDebug() << value;


    ui->axWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
    ui->axWidget->setProperty("DisplayAlerts",false);//不显示警告信息
    ui->axWidget->setProperty("DisplayScrollBars",true);//不显示滚动条
    QString webstr=QString("www.baidu.com");//设置要打开的网页
    ui->axWidget->dynamicCall("Navigate(const QString&)",webstr);//显示网页

//    QString msFilePath;
//    msFilePath = "D:/t.pdf";

//    mpAxWidgetPdf = new QAxWidget("AcroPDF.PDF", this->ui->widget);//Excel.Application //Adobe Acrobat Reader
//    mpAxWidgetOff = new QAxWidget("Word.Application", this->ui->widget_2);

//    // 创建一个QAxWidget对象,并设置其控制为Excel.Application
//    // 注释中提到不显示窗体,设置DisplayAlerts为false
//    mpAxWidgetPdf->dynamicCall("SetVisible (bool Visible)", "false");
//    mpAxWidgetPdf->setProperty("DisplayAlerts", true);
//    auto rect = ui->widget->geometry();
//    mpAxWidgetPdf->setGeometry(rect);
//    mpAxWidgetPdf->setControl(msFilePath);
//    mpAxWidgetPdf->show();



//    // 创建一个QAxWidget对象,并设置其控制为Word.Application
//    // 注释中提到不显示窗体,设置DisplayAlerts为true
//    mpAxWidgetOff->dynamicCall("SetVisible (bool Visible)", "false");
//    mpAxWidgetOff->setProperty("DisplayAlerts", true);
//    rect = this->ui->widget_2->geometry();
//    mpAxWidgetOff->setGeometry(rect);
//    mpAxWidgetOff->setControl(msFilePath);
//    mpAxWidgetOff->show();




}

MainWindow::~MainWindow()
{
    delete ui;
}

7 详细说明

    因为博主没有安装组件所以会失败,暂时没有涉及到这个的业务工作所以没有深入展开研究下去,把实现代码贴出来供参考

1. QVariant(Invalid):这表示QVariant对象的值无效。可能是由于未正确初始化或设置对象的属性导致的。请确保在使用QVariant对象之前正确初始化和设置其值。

2. CoCreateInstance failure (没有注册类):这表示无法创建指定类的实例。可能是由于未正确注册类或缺少相关的组件导致的。请确保所需的类已正确注册,并且系统中已安装了相关的组件。

3. QAxBase::setControl: requested control AcroPDF.PDF could not be instantiated:这表示无法实例化请求的控件。可能是由于控件未正确安装或未正确注册导致的。请确保所需的控件已正确安装,并且系统中已注册该控件。

4. QAxBase::dynamicCallHelper: Object is not initialized, or initialization failed:这表示对象未初始化或初始化失败。可能是由于对象的初始化过程中出现了错误或问题导致的。请确保在使用对象之前正确初始化对象,并检查初始化过程中是否有任何错误。

要解决这些问题,您可以尝试以下步骤:

1. 确保所需的控件已正确安装并注册。如果您使用的是Adobe Acrobat Reader控件来显示PDF文件,请确保已正确安装Adobe Acrobat Reader,并且系统中已注册该控件。

2. 检查代码中是否正确设置了控件的属性和参数。请确保在使用QAxWidget对象之前正确设置其属性和参数,以确保正确的初始化和实例化。

3. 确保您的应用程序具有足够的权限来访问所需的控件和组件。请检查您的应用程序的权限设置,并确保它具有访问所需控件和组件的权限

8 其它文章

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客
QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽
QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客

QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QVBoxLayout 垂直布局控件_双子座断点的博客-CSDN博客

QT QHBoxLayout 水平布局控件_双子座断点的博客-CSDN博客
QT QGridLayout网格布局控件_双子座断点的博客-CSDN博客

QT QVerticalSpacer 弹簧控件_双子座断点的博客-CSDN博客
QT QHorizontalSpacer弹簧控件_双子座断点的博客-CSDN博客
QT QLine 使用详解_双子座断点的博客-CSDN博客
QT QFontComboBox 使用详解_双子座断点的博客-CSDN博客

QT QScrollArea控件 使用详解_双子座断点的博客-CSDN博客

QT QToolBox控件使用详解_双子座断点的博客-CSDN博客

QT QFrame控件使用详解_双子座断点的博客-CSDN博客
QT QMdiArea控件 使用详解_双子座断点的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1008625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python pycharm 下载 安装 自(1)

pycharm 官网 JetBrains: 软件开发者和团队的必备工具 python 官网 Python Release Python 3.11.5 | Python.org 软件安装 因为python需要借助pycharm所以需要安装 下边截图是重要的部分 pycharm python 终端安装 然后进行全局配置 打开pycahrm 可以在扩展里边搜索中…

后端字典的优雅设计

背景 今天讲到的是数据字典的设计。为什么要讲到这个呢&#xff0c;因为我下午在做开发的时候遇到了一个问题。我先扔出来某个表的字段的定义吧&#xff1a; business_type int default 0 comment 0&#xff1a;收款计划&#xff1b;1&#xff1a;付款计划而且我还有一个字典…

【2023年11月第四版教材】第12章《质量管理》(合集篇)

第12章《质量管理》&#xff08;合集篇&#xff09; 1 章节说明2 管理基础3 管理过程3.1 管理ITTO汇总★★★ 4 规划质量管理4.1 数据收集★★★4.2 数据分析★★★4.3 数据表现★★★4.4 质量管理计划★★★4.5 质量测量指标★★★ &#xff08;22下35&#xff09; 5 管理质量…

SpringMVC系列(六)之JSON数据返回以及异常处理机制

目录 前言 一. JSON概述 二. JSON数据返回 1. 导入pom依赖 2. 添加配置文件&#xff08;spring-mvc.xml&#xff09; 3. ResponseBody注解使用 4. 效果展示 5. Jackson介绍 三. 全局异常处理 1. 为什么要全局异常处理 2. 异常处理思路 3. 异常处理方式一 4. 异常处…

算法--插入排序

算法步骤 /*** 插入排序** version 1.0* date 2023/09/01 18:48:44*/ public class Insert {/*** 升序插入排序** param a 待排序的数组* date 2023/9/1 15:29:10*/public static void sortAes(int[] a) {int length a.length;for (int i 1; i < length; i) {for (int j …

Jmx协议远程连接java服务器

注意&#xff1a;本例里&#xff0c;我用的是jdk17 通常用jdk自带的jconsole&#xff0c;或者想要功能强大点的使用visualVM 需要java服务器在启动的时候加上以下参数 -Dcom.sun.management.jmxremote 启用jxm远程连接-Djava.rmi.server.hostname10.1.3.99 指定jxm监听地址&…

《向量数据库指南》——“插件版”向量数据库与Milvus Cloud原生向量数据库之间的区别?

我一直坚持一个观点&#xff0c;即并非所有基于向量的解决方案都应被统称为向量数据库&#xff0c;尽管它们的能力在某些方面可以与之匹敌。从我的观点来看&#xff0c;例如 pgvector 或 Elasticsearch&#xff0c;它们都是非常出色且成熟的产品&#xff0c;在特定场景下&#…

【C语言】扫雷小游戏(保姆教程)

目录 一、扫雷游戏介绍 二、代码分装 三、代码实现步骤 1. 制作菜单menu函数以及游戏运行逻辑流程 2. 数组棋盘分析 3. 创建棋盘数组 4. 初始化棋盘InitBoard函数 5. 显示棋盘DisplayBoard函数 6. 布置雷SetMine函数 7. 统计雷个数GetMineCount函数 8. 排查雷FindMine函…

手摸手系列之前端Vue实现PDF预览及打印的终极解决方案

前言 近期我正在开发一个前后端分离项目&#xff0c;使用了Spring Boot 和 Vue2&#xff0c;借助了国内优秀的框架 jeecg&#xff0c;前端UI库则选择了 ant-design-vue。在项目中&#xff0c;需要实现文件上传功能&#xff0c;同时还要能够在线预览和下载图片和PDF文件&#x…

【C# Programming】继承、接口

一、继承 1、派生 继承在相似而又不同的概念之间建立了类层次概念。 更一般的类称为基类&#xff0c;更具体的类称为派生类。派生类继承了基类的所有性质。 定义派生类要在类标识符后面添加一个冒号&#xff0c;接着添加基类名。 public class PdaItem {public string Name {…

java的入门学习

1. 安装jdk 一般是安装java8&#xff0c;大部分使用的版本是java8&#xff1b; 然后需要部署java环境变量 2. 编译class文件 javac 文件名.java 3. 执行class文件 编译命令为java 文件名 配置classpath路径为.\为当前路径下的class文件名 4. 变量 成员变量&#xff1a;类…

Pycharm中配置Celery启动

Pycharm中配置Celery启动 前置条件 目录结构 ----FerDemo --------celery_demo ------------tasks.py tasks.py文件代码 import sys import time from celery import Celeryapp Celery(demo,backendredis://:password127.0.0.1/0,brokerredis://:password127.0.0.1/1,broker…

【线性代数】沉浸式线性代数在线学习网站

地址&#xff1a;http://immersivemath.com/ila/index.html 这是全球第一本带交互式图形的线性代数教材&#xff0c;作者是 J. Strm, K. strm, and T. Akenine-Mller。 全书一共十章&#xff0c;各章节内容如下&#xff1a; 接下来我将对各章节进行简单的总结&#xff0c;另外…

LLM - SFT workflow 微调工作流程

目录 一.引言 二.Workflow 分流程拆解 1. Workflow 代码 2.Workflow 拆解 ◆ 超参数初始化 ◆ 数据集初始化 ◆ 加载与量化 ◆ 数据集预处理 ◆ DataCollator ◆ 模型微调 sft 三.总结 一.引言 前面我们对 LLM 相关流程的单步都做了分析…

Linux入门教程||Linux文件基本属性

Linux系统是一种典型的多用户系统&#xff0c;不同的用户处于不同的地位&#xff0c;拥有不同的权限。为了保护系统的安全性&#xff0c;Linux系统对不同的用户访问同一文件&#xff08;包括目录文件&#xff09;的权限做了不同的规定。 在Linux中我们可以使用 ll 或者 ls –l…

分类预测 | Matlab实现RBF-Adaboost多特征分类预测

分类预测 | Matlab实现RBF-Adaboost多特征分类预测 目录 分类预测 | Matlab实现RBF-Adaboost多特征分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于RBF-Adaboost数据分类预测&#xff08;Matlab完整程序和数据&#xff09; 2.多特征输入…

有关Monaco LSP的集成 monaco-languageclient 项目的开启

要求 node 18x npm 9x git clone https://github.com/TypeFox/monaco-languageclient.git cd monaco-languageclient npm i# Cleans-up, compiles and builds everything npm run build npm run dev # 访问 http://127.0.0.1:8080/两个自动完成&#xff0c; 两个验证 纠错

马蹄集 oj赛(第十一次)

目录 除法2 tax 约数个数 约数之和 全部相同 石头剪刀布 模数 余数之和 数树 除法 除法2 黄金时间限制:1秒占用内存: 128 M难度: 给定n&#xff0c;求 ”i*[n/]&#xff0c;[] 表示对 取下整 格式 一个正整数n。输入格式: 输出格式:一个数表示答案 样例1 输入:4 输出…

iPhone苹果15手机怎么取消订阅付费的项目?

iPhone苹果15手机怎么取消订阅付费的项目&#xff1f; 1、打开iPhone苹果手机桌面上的「设置」&#xff1b; 2、在苹果iPhone手机设置内点击进客户我的「Apple ID」; 3、在苹果iPhone手机Apple ID内找到「订阅」并点击进入&#xff1b; 4、在苹果iPhone手机Apple ID订阅内找到…

康拓123发卡软件支持PN532读卡器

康拓123发卡软件&#xff0c;支持PN532、PCR532等532系列读卡器&#xff0c;使用普通M1卡&#xff0c;就是也物业使用的一样的卡授权卡。 软件打开如下图 将PN532插电脑上&#xff0c;安装驱动&#xff0c;软件可以自动连接读卡器&#xff0c;也可以手动连接&#xff0c;在软件…