IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> QT自动生成测试文档 -> 正文阅读

[C++知识库]QT自动生成测试文档

项目要求使用QT软件后自动生成测试文档:

实现过程如下所示:

新建模板工程

在模板插入书签:

在这里插入图片描述

工程中添加如下

QT += core gui axcontainer

代码注释如下:
首选新建一个word文档:


void Widget::create_word()
{
    //新建一个word应用程序
    word= new QAxWidget("Word.Application",0,Qt::MSWindowsOwnDC);

    //并设置为不可见
    word->setProperty("Visible",false);
    word->setProperty("DisplayAlerts", true);
    //获取所有的工作文档
    documents = word->querySubObject("Documents");

    //以test2.dot为模板新建一个文档
    documents->dynamicCall("Add(QString)",QString::fromLocal8Bit("D:/Qt/QTT/t/54321.dot"));

    //获取当前激活的文档
    document= word->querySubObject("ActiveDocument");
    if (!document) {
        QMessageBox::warning(this, tr("警告"), tr("无法获得Documents对象!"),QMessageBox::Ok);
        return ;
    }

}

最后根据代码的逻辑,在代码中实现要插入word中的内容:
根据书签内容,在指定位置插入指定数据

if(cBox->currentText() == "1.1 常用制动1")
    {
        qDebug()<<cBox->currentText();
        //获取文档中名字为Data1的标签
        QAxObject *bookmark_Data1 = document->querySubObject("Bookmarks(QVariant)","Data1");
        if(!bookmark_Data1->isNull())
        {
            QString sText= "1";                          //此处为替换内容
            qDebug()<<sText;
            bookmark_Data1->dynamicCall("Select(void)");                             //选中要选中的区域
            bookmark_Data1->querySubObject("Range")->setProperty("Text",sText);      //进行替换操作
        }

        //获取文档中名字为Data2的标签
        QAxObject *bookmark_Data2 = document->querySubObject("Bookmarks(QVariant)","Data2");
        if(!bookmark_Data2->isNull())
        {
            QString pText="2";                          //此处为替换内容
            qDebug()<<pText;
            bookmark_Data2->dynamicCall("Select(void)");                             //选中要选中的区域
            bookmark_Data2->querySubObject("Range")->setProperty("Text",pText);      //进行替换操作
        }

        //获取文档中名字为Data3的标签
        QAxObject *bookmark_Data3 = document->querySubObject("Bookmarks(QVariant)","Data3");
        if(!bookmark_Data3->isNull())
        {
            QString bText= "3";                              //此处为替换内容
            qDebug()<<bText;
            bookmark_Data3->dynamicCall("Select(void)");                             //选中要选中的区域
            bookmark_Data3->querySubObject("Range")->setProperty("Text",bText);      //进行替换操作
        }

        //获取文档中名字为Data4的标签
        QAxObject *bookmark_Data4 = document->querySubObject("Bookmarks(QVariant)","Data4");
        if(!bookmark_Data4->isNull())
        {
            QString bText= "4";                              //此处为替换内容
            qDebug()<<bText;
            bookmark_Data4->dynamicCall("Select(void)");                             //选中要选中的区域
            bookmark_Data4->querySubObject("Range")->setProperty("Text",bText);      //进行替换操作
        }
    }

结果显示

指定位置插入指定数据
在这里插入图片描述

注意事项:

1、word文件格式必须为dot格式,使用文件的绝对路径。

2、word中插入位置都是根据模板文档的书签位置决定的,因此,书签一定要和代码书签名称对应上。

3、添加的自动化生成测试文档,会造成gui界面生成卡顿,可以考虑多线程解决此问题。

4、如果代码查找不到对应书签 程序会崩溃退出。添加如下错误判断可以解决。

  if(NULL == bookmark_text)//注意这个判断不可少,否则下面调用isNull()时会出错
    {
        return;
    }
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:40:56  更:2022-05-10 11:41:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:15:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码