Qt例程-Qt中使用CAD插件

Qt例程-Qt中使用CAD插件

1.插件下载及注册

  • 到梦想CAD官网下载插件,官网地址:https://www.mxdraw.com/download.html,下载2d开发包;
    在这里插入图片描述

  • 双击安装插件;
    在这里插入图片描述

  • 以管理员身份运行RegMxDrawX.bat,注册插件;
    在这里插入图片描述

  • 插件注册成功界面如下图;
    在这里插入图片描述

2.使用插件

  • 在Qt设计师界面拖入一个QAxWidget;
    在这里插入图片描述

  • 右键-设置控件,或者双击控件;
    在这里插入图片描述

  • 选择MxDrawX52 Control;
    在这里插入图片描述

  • 设置完成后如下图所示;
    在这里插入图片描述

  • 然后回到VS中,在Qt模块中选择ActiveQt;
    在这里插入图片描述

  • 运行后的效果如下图。
    在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt使用多线程并行计算可以通过QtConcurrent框架实现。具体步骤如下: 1. 将warpAffine函数封装为一个可重入函数,以便在多线程调用。 2. 使用QFuture和QtConcurrent::mapped函数启动多个线程,将待处理的数据分配给不同的线程。 3. 在每个线程调用封装后的warpAffine函数处理分配给该线程的数据。 4. 使用QFutureWatcher监视多线程计算的进度,并在计算完成后获取结果。 以下是示例代码: ```cpp #include <QtConcurrent> #include <QFutureWatcher> void warpAffine(const Mat& src, Mat& dst, const Mat& M); void warpAffineParallel(const Mat& src, Mat& dst, const Mat& M) { int numThreads = QThread::idealThreadCount(); // 获取可用线程数 QVector<Mat> srcData(numThreads); QVector<Mat> dstData(numThreads); // 将待处理的数据分配给不同的线程 for (int i = 0; i < numThreads; ++i) { srcData[i] = src.rowRange(i * src.rows / numThreads, (i + 1) * src.rows / numThreads); dstData[i] = dst.rowRange(i * dst.rows / numThreads, (i + 1) * dst.rows / numThreads); } // 使用QFuture和QtConcurrent::mapped函数启动多个线程 QFutureWatcher<Mat> watcher; QFuture<Mat> future = QtConcurrent::mapped(srcData, [M](const Mat& src) { Mat dst; warpAffine(src, dst, M); return dst; }); watcher.setFuture(future); // 在计算完成后获取结果 QObject::connect(&watcher, &QFutureWatcher<Mat>::finished, [&]() { QVector<Mat> results = watcher.result(); for (int i = 0; i < numThreads; ++i) { results[i].copyTo(dstData[i]); } }); } ``` 在上面的示例代码,我们首先将待处理的数据分配给不同的线程,然后使用QFuture和QtConcurrent::mapped函数启动多个线程,并在每个线程调用封装后的warpAffine函数处理分配给该线程的数据。最后,在计算完成后,我们使用QFutureWatcher获取每个线程计算的结果,并将其复制回目标图像。 值得注意的是,在使用多线程并行计算时,可能会出现线程安全问题。因此,我们需要采取必要的措施来确保线程安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值