[Qt5] QT+VS读取dwg文件

简介: [Qt5] QT+VS读取dwg文件

原文地址[https://blog.csdn.net/u013725001/article/details/43272161]

本文略作删改,让新手更好理解一些

1.下载MxDraw控件 注:可到www.mxdraw.com 自行下载(后面介绍如何用)

2.介绍如何把控件放到QT中并运行

2.1引入控件 运行Qt Creator,点击[文件]=>[新建文件或项目…],出来新建项目窗口,如下:

2.2选择”Qt Widgets Application” 新建一个桌面项目

2.3新建项目完成,点击”mainwindow.ui”,进入界面编辑,如下图:

2.4在界面上,插入QAxWidge控件(可以理解一个盛放dwg文件的容器),如下图:

2.5运行控件安装下的RegMxDrawX.bat注册控件(找到第一步下载的MxDraw控件),只有注册了控件,在下面的界面才能看到MxDraw52,如下图:

2.6双击,拖到界面的QAxWidge控件,选择MxDrawX52

2.7现在需要编译运行,出现如下连接错误提示,是因为工程中,没有加入Qt Axcontainer,错误提示如下:

注:Qt提供了QtActiveX模块来支持微软ActiveX的开发,Qt的ActiveX和COM的开发支持两种方式:

1.支持将已有的COM或者ActiveX空间引入到Qt的应用程序中

2.支持将Qt应用程序或者Qt的对象导出成COM对象或者ActiveX控件供他人使用

具体来说,Qt是通过ActiveXQt框架中的两个模块来支持上述所说的两种方式的:

1.使用QAxContainer模块,通过QAxObject和QAxWidget分别支持COM对象和ActiveX控件的开发,可以通过这两个对象将外部的COM或者ActiveX组件接入到Qt应用程序

2.使用QAxServer模块,通过QAxAggregated、QAxBindable和QAxFactory类,通过了进程内和可执行程序exe两种方式的COM Server模式,用来将Qt写的内容导出为COM或者ActiveX供他人使用。

下图简要的说明了QtActiveX的作用:

2.8修改工程属性文件:TestQtMxDraw.pro,加入QT += axcontainer,如下

2.9然后构建所有项目 ,前面的连接错误就消除了。

2.10 点击运行后如下图:

3. 演示如何在QT调用控件打开函数,打开DWG文件

3.1 增加打开文件按钮(在界面上放一个按钮,并生成按钮事件)

3.2点按钮上点击右键,选择[转到槽],增加按钮点击事件

3.3点击[转到槽]

增加如下代码:

void MainWindow::on_pushButton_clicked()

{

// 执行控件自定义命令函数,命令的id为2,这个id用户可以自己取任意数,可以理解为是给执行的命令一个编号.
ui->axWidget->dynamicCall("DoCommand(const qint32&)",2);

}

3.4给控件增加,命令显示事件,如下图:

在函数中,增加如下代码,打开H盘的1.dwg文件:

void MainWindow::on_axWidget_ImplementCommandEvent(int iCommandId)

{

if(iCommandId == 2)
{
    // 调用控件打开函数,打开H:盘的1.dwg文件。
    ui->axWidget->dynamicCall("OpenDwgFile(const QString&)","H:\\1.dwg");

}

}

4. 在VS中使用QT

4.1.运行VS,点[QT5]=>[Open Qt Project File(.pro)…]文件,把刚才我们用Qt Creator引入的到VS中。

如下:

导入后,就可以直接编译运行。

目录
相关文章
|
3月前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
31 0
|
4月前
|
C++
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
451 6
|
3月前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
|
3月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
614 4
|
3月前
|
XML 开发框架 API
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
138 1
|
3月前
QT 软件打包为一个单独可执行.exe文件流程
QT 软件打包为一个单独可执行.exe文件流程
588 0
|
3月前
|
C++
【qt】VS中如何配置Qt环境
【qt】VS中如何配置Qt环境
172 0
|
3月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
|
6月前
|
Windows
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战