【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

news2024/11/24 0:49:05

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。

之前在 Windows 上完成了使用 Visual Studio 构建 VTK,这一篇结合实现 Qt 在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。之前的文章链接为:【Visual Studio】在 Windows 上使用 Visual Studio 构建 VTK。

文章目录

  • 1 版本环境
  • 2 构建步骤
    • 1 准备文件夹结构
    • 2 运行 CMake
  • 这里的图需要替换
  • 图需要替换
    • 3 在 Visual Studio 中构建
  • 3 测试是否成功
    • 1 新建工程
    • 2 工程配置
    • 3 运行结果
  • 附录
  • Ref.

1 版本环境

  • win11
  • visual studio 2022
  • VTK-9.2.6
  • CMake 3.26.3
  • Qt 6.2.8

2 构建步骤

建议全程打开 CMake 和 Visual Studio 时均使用管理员身份,防止不必要的麻烦。同时,如果电脑上提前在 Visual Studio 里安装了 Qt VS Tool,那么请提前卸载,最好再重启一下电脑。

如果不知道如何安装卸载 Qt VS Tool,可以参考:【VisualStudio】基于 Visual Studio 使用 C++ 语言开发 Qt 环境配置教程。

1 准备文件夹结构

我是在 C 盘创建了一个 VTKFolders 来保存所有需要的文件。

在这里插入图片描述

2 运行 CMake

使用 CMake 生成一个 visual studio 解决方案。

首先以管理员身份打开 CMake-GUI。配置好资源文件夹和 build 文件夹。然后点击 Configure。

在这里插入图片描述

会弹出一个选择框,选择适合自己的配置,然后 Finish。

我电脑上安装了一个 32 位的 Qt 5.12.12 和 64 位的 Qt 6.2.8,测试了好多遍 Qt 5,都是不能用,所以我选择了 64 位的 Qt 6.2.8来安装,至于 32 位的 Qt 6 系列能不能用,我没有测试。

这里的图需要替换

在这里插入图片描述

我们现在有几个选项,可以根据需要打开或关闭。如:

  • 修改 CMAKE_INSTALL_PREFIX 为你想指定的文件夹
  • 勾选 Advanced,搜索 qt,将所有选项都选成 Yes。

在这里插入图片描述

在这里插入图片描述

然后点击 Configure,可以多点击几次,一直到没有红色警告提示了。

这时候有可能会出现找不到 Qt 的情况,这是因为 Qt 的环境没有添加到系统的环境变量里。可以通过下图所示,将 Qt 添加到环境变量。注意,由于各自配置的文件夹不同,所以路径仅供参考。

不知道怎么打开系统环境变量的可以根据以下提示:
[start -> Edit the system environment variables -> Advanced -> Environment Variables -> Path -> Edit -> New]

在这里插入图片描述
配置完系统环境变量后,然后重启 CMake-GUI,再次 Configure,即可自动搜索到 Qt。
之后 Generate,这将填充 VTK-build 子文件夹。Open Project 就进入到 Visual Studio 工程里了。

图需要替换

在这里插入图片描述

3 在 Visual Studio 中构建

选择 Release 和 X64。
然后选择右键 ALL_BUILD -> 生成。

在这里插入图片描述

根据电脑性能不同,花费时间也不同。我电脑用了 3 分钟,报告显示成功 270,有 2 个失败。我继续往下进行了,目前问题不大。
然后我们就可以在文件夹中看到很多 .dll 文件。
放一下我自己的文件夹路径仅供参考 C:\VTKFolders\VTK-build\bin\Release

在这里插入图片描述

在这里插入图片描述

然后出错了 setlocal 的错误。这是一个比较典型的错误,我也尝试了网上分享的几种办法,但是都不适合我。

在这里插入图片描述

尝试下边这种解决办法。将生成后事件改成了否。然后再右键 INSTALL 工程,点击重新生成。

在这里插入图片描述

虽然不再报错 setlocal,但是还是不行。

在这里插入图片描述

最后尝试使用管理员身份打开 Visual Studio 工程,然后再右键 INSTALL 工程,点击重新生成,还是不行。

最后的最后,发现不用管,往下就行了。

3 测试是否成功

1 新建工程

如果一切顺利,那么现在应该可以编译并运行 C++ 示例了。
这里我测试的是,是否能将 Widget 控件提升为 QVTKOpenGLNativeWidget 并成功运行。

新建一个 Qt 工程,名字为 VTKTest,拖进一个 Widget 控件,提升其为 QVTKOpenGLNativeWidget 并得到如下图所示的工程界面。

不知道怎么进提升 Widget 的可参考:【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面。

在这里插入图片描述

2 工程配置

然后添加 Qt OpenGLWidgets。

不知道怎么进入这个界面可参考:【Visual Studio】报错 LNK2019,使用 C++ 语言,配合 Qt 开发串口通信界面 或 【Visual Studio】报错 C1083,使用 C++ 语言,配合 Qt 开发串口通信界面。

在这里插入图片描述

然后按照下图所示添加需要的库文件。

不知道如何打开这个界面的可参考:【Visual Studio】合并C++工程的 .h .lib .dll 文件,包括全部配置过程。Bug 报错 E1696 无法打开源文件,使用 C++ 语言,配合 Qt 开发串口通信界面。

在这里插入图片描述

在这里插入图片描述
同时再截图一下自己的 Qt 版本。有时候也会因为版本问题会出现各种错误。

在这里插入图片描述

3 运行结果

运行成功后的结果如下图所示:

在这里插入图片描述

附录

因为一直配置不成功,中间还尝试过更换 VTK 的版本,更换为 VTK-9.0.3 后,结果错误更多了。
所以最后还是狠下心,就是搞现在手里这个版本把。索性最后把所有错误都犯了一遍后,也成功了。

在这里插入图片描述
在这里插入图片描述


Ref.

  1. VTK与QT源码编译和示例
  2. QT5+VTK9.1最新配置方法

QVTKOpenGLNativeWidget在Qt中的用法

我的第一个VTK程序–绘制球体

VTK读取一个TXT文档中的三维点坐标显示三维点云

VTK以批量三维点坐标为中心(点云)绘制球体,可用于标识特征点或者是化学分子


VTK 配置.md

VTK v9.0新版本找不到QVTKWidget.h头文件了?Qt设计师怎么办?

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

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

相关文章

最新2023水果编曲软件FL Studio Producer Edition 21.0.3 Build 3517中文版下载安装激活图文教程

各位,大家好,今天兔八哥给大家带来最新最新2023水果编曲软件FL Studio Producer Edition 21.0.3 Build 3517中文版下载安装激活图文教程。我们一起先了解一些FL Studio 。FL Studio21是目前流行广泛使用人数最多音乐编曲宿主制作DAW软件,这款…

腾讯、飞书等在线表格自动化编辑--python

编辑在线表格 一 目的二 实现效果三 实现过程简介1、本地操作表格之后进入导入在线文档2、直接操作在线文档 四 实现步骤讲解1、实现方法的选择2、导入类库3、设置浏览器代理直接操作已打开浏览器4、在线文档登录5、在线文档表格数据操作6、行数不够自动添加行数 五 代码实现小…

2023年Q2京东大家电市场前瞻分析报告(含电商销售数据)

今年Q2,京东平台各个主要家电板块的表现分化较为明显,各个细分的子版块在今年第二季度的业绩都各有亮点,部分品类甚至还出现了较大的市场格局变化。 这一期,我们率先来分析一下京东四个大家电品类的行业大盘变动情况。我们将从行业…

51单片机LCD12864温度曲线显示温度温控系统加热制冷控制

实践制作DIY- GC00155-温度曲线显示温度温控系统 一、功能说明: 基于51单片机设计-温度曲线显示温度温控系统 二、功能说明: STC89C52单片机LCD12864显示器DS18B20温度传感器1个红色LED灯模拟加热1个绿色LED灯模拟制冷4个按键(温度下限加减键…

递归总结

递归每次自己调用自己,每次调用自己后函数的数据会较上次缩减,而且最后缩减至无需继续递归。内层函数调用完成,外层函数才算调用完成 n的阶乘伪代码 外层必须逐级向里面递,最后再向外归。 public class 递归_02 {public static vo…

ITIL 4—监控和事态管理实践

1 关于本文 本文为监控和事态管理实践提供了实用指南。它分为五个主要部分,内容包括: 有关实践的一般信息监控和事态管理的流程和活动及其在服务价值链中的角色监控和事态管理中涉及的组织和人员支持监控和事态管理的信息和技术合作伙伴和供应商对监控…

A_003.adb常用命令使用介绍

1.adb工作原理说明 adb命令是调试控制手机过程中用的比较多工具。adb是一个C/S架构的应用程序,主要由三部分组成: (1)、运行在电脑端的adb client程序 在电脑终端中执行adb --help可以查看当前支持的adb命令。当在命令行执行程序adb相关命令的时候,adb程序尝试连接到主机上…

VUE根据图片做图片形状的词云效果

VUE根据图片形状制作词云效果 针筒图片:(是png) 效果图:(文章底部有完整代码) 限制横竖显示, 在两种颜色中随机。 爱心图片:(是白底的png) 效果图&#xff…

什么是CI/CD?让你的项目变得更加敏捷!

在今天这个快速变化的时代,开发者们需要与时俱进,不断提升自己的工作效率。在这篇文章里,将一起探讨如何使用CI/CD和Github Action让你的项目更加高效,快速响应市场变化。 一、什么是CI? CI(持续集成&…

【Java面试丨并发编程】线程的基础知识

一、进程与线程的区别 1. 进程 程序是由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存在指令运行过程中还需要用到磁盘、网络等设备进程就是用来加载指令、管理内存、管理IO的当一个程序被…

青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础…

C++学习 内存分区模型

内存分区模型 C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理。全局区:存放全局变量和静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值&#…

【TI毫米波雷达笔记】DCA1000EVM+mmWave Studio数据采集的MIMO模式设置(多天线发射工作模式)

【TI毫米波雷达笔记】DCA1000EVMmmWave Studio数据采集的MIMO模式设置(多天线发射工作模式) 以IWR6843AOP为例 其为3发4收的雷达 MIMO模式有两种 TDM-MIMO和BPM-MIMO TDM-MIMO模式(时分复用) TDM-MIMO模式是最简单和常用的MIM…

Vector - CANoe - CAPL文件加密

目录 为什么会有CAPL文件加密需求? 加密文件介绍 “*.can”和“*.cin” 文件创建 <

win11安装virtual box和vagrant,附带centos7镜像

环境检查 1. 开启CPU虚拟化 修规bios配置 configuration -> Intel Virtual Technology 改为 enabled 2. 关闭hyper-v 以管理员启动 powershell&#xff0c;执行&#xff1a; bcdedit /set hypervisorlaunchtype off 3. 关闭wsl虚拟机 以管理员启动 powershell&#x…

C#探索之路(10):实现一个简单应用的功能——志愿填报

C#探索之路(10)&#xff1a;实现一个简单应用的功能——志愿填报 文章目录 C#探索之路(10)&#xff1a;实现一个简单应用的功能——志愿填报1、前景&#xff1a;2、需求分析3、功能实现3.1、界面交互-输入3.2、界面交互-输出 3、代码示例&#xff1a;4、效果图&#xff1a;5、总…

利用缓存模拟进度条(c实现)

代码如下&#xff1a; #include <stdio.h> #include <Windows.h>int main() {int total 100;int progress 0;char progressBar[101] {};while (progress < total) {progressBar[progress] #;printf("[%-100s] %d%%", progressBar, progress);ffl…

音视频开发实战03-FFmpeg命令行工具移植

一&#xff0c;背景 作为一个音视频开发者&#xff0c;在日常工作中经常会使用ffmpeg 命令来做很多事比如转码ffmpeg -y -i test.mov -g 150 -s 1280x720 -codec libx265 -r 25 test_h265.mp4 &#xff0c;水平翻转视频&#xff1a;ffmpeg -i src.mp4 -vf hflip -acodec copy …

爬虫相关知识与面试题目

常见的反爬虫和应对方法 参考:https://www.cnblogs.com/bsdr/p/5151891.html 0x01 常见的反爬虫 这几天在爬一个网站&#xff0c;网站做了很多反爬虫工作&#xff0c;爬起来有些艰难&#xff0c;花了一些时间才绕过反爬虫。在这里把我写爬虫以来遇到的各种反爬虫策略和应对的…

判断 Mac显卡 mps 是否可以正常运行

文章目录 Mac MPS介绍判断 Mac mps 是否可以正常运行Mac 指定 mps 进行推理示例Mac M1 GPU 训练 相比 CPU 速度提升对比&#x1f4d9; 开心搬砖每一天 Mac MPS介绍 使用 Apple 的 Metal Performance Shaders (MPS) 作为 PyTorch 的后端来启用加速 GPU 训练。 MPS 后端扩展了 P…