Visual Studio 2022 + Qt 编写 VTK 程序

news2024/11/15 4:15:53

Visual Studio 2022 + Qt 编写 VTK 程序

  • Visual Studio 2022 + Qt 编写 VTK 程序
    • 前期准备
    • 创建一个 Qt 程序
    • 引入 VTK 库
    • 运行项目

Visual Studio 2022 + Qt 编写 VTK 程序

前期准备

你需要一个编译好的 VTK 库:使用 Cmake 对 VTK-9.3.0 进行编译

你需要安装 Qt,我安装的版本是 6.2.3。

你需要下载并安装 Qt Visual Studio Tools,完成在 Visual Studio 2022 中的配置:Visual Studio 2022 中 Qt 开发环境的搭建

创建一个 Qt 程序

引入 Qt 后,打开 Visual Studio 2022,创建新项目,你会发现多了 Qt 的选项,选择 Qt Widgets Application:

在这里插入图片描述

填写好项目名称后,点击创建,弹出 Qt 设置框:

在这里插入图片描述

点击 Next,进入详细的选择页,可以选择编译模式、Qt 版本、平台、Qt 的模块。

我们使用 Debug,注意要勾选其中的 Qt OpenGLWidgets 模块,后面会在这个 Widget 里显示 VTK 的内容:

在这里插入图片描述

在这里插入图片描述

选择好后,点 Next,再点 Finish,项目就创建好了:

在这里插入图片描述

引入 VTK 库

前面我们在 Visual Studio 2022 上成功创建了一个 Qt Widgets Application,现在我们来引入 VTK 库。

右击项目名称,找到属性,点击之后。找到 VC++ 目录,编辑包含目录和库目录:

在这里插入图片描述

填自己的路径就行,我的包含目录和库目录的路径如下:

  • 包含目录:C:\VTK\VTK9.3.0\include\vtk-9.3
  • 库目录:C:\VTK\VTK9.3.0\lib

加进去路径之后,点击应用。

接下来,找到链接器-输入-附加依赖项,把 VTK 生成的 lib 静态库加进去。

快速加入 lib 库的方法:C:\VTK\VTK9.3.0\lib\*.lib,这样会链接全部的 lib,也可以单个 lib 进行添加,参考:VS2022+QT使用VTK教程。

在这里插入图片描述

在项目的头文件中,添加以下代码:

#include <QVTKOpenGLNativeWidget.h>
QVTKOpenGLNativeWidget* _pVTKWidget = Q_NULLPTR;

在这里插入图片描述

在项目的 cpp 文件中,添加以下代码:

    _pVTKWidget = new QVTKOpenGLNativeWidget();
    this->setCentralWidget(_pVTKWidget);

在这里插入图片描述

这个时候还不能成功运行,因为没有添加 dll 文件,我们先生成一下项目:

在这里插入图片描述

成功后,会在项目地址生成一个 x64 文件夹:

在这里插入图片描述

打开,里面有一个 Debug 文件夹,再打开,看到 exe:

在这里插入图片描述

一般在编译 VTK 库时,会按 debug 和 release 分别编译一次,我们拷贝 bin\debug 中的全部文件到项目的 x64\Debug 文件夹下:

在这里插入图片描述

运行项目

运行项目,我们看到 _pVTKWidget 已经成功显示了出来,大功告成。

在这里插入图片描述

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

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

相关文章

<数据集>光伏板缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2400张 标注数量(xml文件个数)&#xff1a;2400 标注数量(txt文件个数)&#xff1a;2400 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Crack,Grid,Spot] 序号类别名称图片数框数1Crack8688922Grid8248843S…

CTF之easyupload

拿到题目发现是文件上传的漏洞&#xff0c;但是这个黑名单过滤的有点严格&#xff0c;无论是文件里还是文件后缀都不能出现php 那我们就用<?eval($_POST[a]);?>来进行绕过&#xff08;注意这里要加个GIF89a或者GIP87a进行欺骗&#xff09; 但是后缀依然不能绕过怎么办&…

我的六天C++外出学习记

第一天 7月7日 星期日 早晨&#xff0c;我早早起来了&#xff0c;穿好衣服吃完饭就出发了。 我从家到学校用了1H&#xff0c;迟到了&#xff01;我急急忙忙去报到。 我们中午和晚上的饭菜虽说有点贵&#xff0c;但实在太美味了&#xff0c;和我们原本初中的饭菜相比&#…

C语言指针超详解——强化篇

C语言指针系列文章目录 入门篇 强化篇 文章目录 C语言指针系列文章目录1. assert 断言2. 指针的使用和传址调用2. 1 strlen的模拟实现2. 2 传值调用和传址调用 3. 数组名的理解4. 使用指针访问数组5. 一维数组传参的本质6. 冒泡排序7. 二级指针8. 指针数组9. 指针数组模拟实现…

【LeetCode力扣】005.最长回文子串(Python)

最直观的做法&#xff0c;时间&#xff0c;空间复杂度都是O(2^n) class Solution:def longestPalindrome(self, s: str) -> str:dp [[0 for i in range(len(s))] for j in range(len(s))]longestSubStr "" # 存储最长回文子串longestLen 0 # 最长回文子串的长…

第一部分:C++入门

目录 前言 1、C关键字(C98) 2、命名空间 2.1、命名空间定义 2.2、命名空间的使用 3、C输入&输出 4、缺省参数 4.1、缺省参数的概念 4.2、缺省参数的分类 5、函数重载 5.1、函数重载的概念 5.2、C支持函数重载的原理 6、引用 6.1、引用的概念 6.2、引用特性 …

职业PDF标准 Python 下载器-CSDN

目的 下载技能人才评价网 - 职业技能标准查询系统 - PDF 打包下载 使用文件 a.json 代码解析 import base64 import requests import json import os import time# 读取JSON文件 with open(a.json, r, encodingutf-8) as f:data json.load(f) # 从名为 a.json 的文件中读…

数据库作业d8

要求&#xff1a; 一备份 1 mysqldump -u root -p booksDB > booksDB_all_tables.sql 2 mysqldump -u root -p booksDB books > booksDB_books_table.sql 3 mysqldump -u root -p --databases booksDB test > booksDB_and_test_databases.sql 4 mysql -u roo…

iPhone数据恢复:如何从iPhone恢复误删除的短信

来自iPhone的意外删除的短信可能很关键。它们可能是来自您常用应用程序、银行交易、付款收据的重要通知&#xff0c;也可能是来自朋友的重要文本、孩子的学校通知等。 如果您也从iPhone丢失了此类消息&#xff0c;我们在这里分享如何在没有备份以及有备份的情况下在iPhone上恢…

frameworks 之FallbackHome

frameworks 之FallbackHome FallbackHome 启动启动 Activity 流程创建进程ActivityThrad 与 AMS启动真正的 Launcher mActivityManagerService 创建后会启动 FallbackHome 再启动桌面程序。因为此时还没解锁&#xff0c;桌面又涉及很多其他应用程序相关&#xff0c;所以要等待用…

项目方案:社会视频资源整合接入汇聚系统解决方案(十)-视频监控汇聚应用案例和解决方案

目录 一、概述 1.1 应用背景 1.2 总体目标 1.3 设计原则 1.4 设计依据 1.5 术语解释 二、需求分析 2.1 政策分析 2.2 业务分析 2.3 系统需求 三、系统总体设计 3.1设计思路 3.2总体架构 3.3联网技术要求 四、视频整合及汇聚接入 4.1设计概述 4.2社会视频资源分…

DevToys-开源免费开发工具箱

个人觉得相较于那些在线的工具箱&#xff0c;这种离线的工具箱客户端更加可信一些。 DevToys 提供了30 个默认工具&#xff1a; 转换器&#xff1a;JSON <> YAML、日期、数字基数......编码器/解码器&#xff1a;HTML、URL、Base64、GZip、JWT、二维码......格式化程序…

【机器学习】随机森林的分类效果及进阶应用

文章目录 一、随机森林概述1.1 Bagging思想1.2 随机森林的定义1.3 随机森林的生成过程投票机制 二、随机森林的性能与优缺点2.1 分类效果的影响因素2.2 优点2.3 缺点 三、随机森林的进阶3.1 缺失值处理3.2 袋外数据&#xff08;OOB&#xff09;OOB计算方法优缺点 3.3 过拟合问题…

Deepin 安装sunix串口卡驱动

折腾了3天&#xff0c;终于搞定&#xff0c;改天上传安装过程&#xff0c;开启用c对串口传感器的编程 这种戴尔拆机卡&#xff0c;芯片用的是sunix&#xff0c;下载sunix 的linux驱动。 串口传感器用的是中盛rs485温湿度串口传感器&#xff0c;加一个rs232 转485接口 串口传感…

安全防御拓扑1

目录 实验的拓扑&#xff1a; 要求&#xff1a; 我搭建的实验拓扑 步骤&#xff1a; 创建vlan&#xff1a; 接口配置&#xff1a; 防火墙&#xff1a; 防火墙配置&#xff1a; 建立安全策略&#xff1a; 防火墙的用户&#xff1a; 办公区的市场部和研发部用户 市场部…

手机删除的文件能恢复吗?删除不等于永别,3个技巧助你找回

安卓手机中的文件&#xff0c;就像是数字世界里的繁星&#xff0c;记录着我们的点点滴滴。然而&#xff0c;有时我们可能会不小心删除了某些重要的文件&#xff0c;让我们感到惋惜和困惑。删除的文件能恢复吗&#xff1f;别担心&#xff0c;删除并不等于永别&#xff0c;我们也…

关于文档理解相关工作的一些总结

过去四年时间&#xff0c;都在处理结构化数据的存储优化相关的工作。最近一段时间在做RAG相关的工作。非结构数据的存储与检索&#xff0c;接触的也越来越多。这篇文章聊聊最近一段时间关于文档理解方面的一些心得。 文档理解 文档理解旨在从非结构化文档中提取信息并将其转化…

DockerSecret+DockerConfig介绍及使用

DockerSecret 查看官网介绍&#xff0c;Secret是daemon API 1.25之后引入的&#xff0c;它运行在swarm上的命令。 生产环境下&#xff0c;为了安全&#xff0c;我们不能把各项目的配置密码写入到配置文件。 我们可以引入docker的secret方式保护密码。 场景&#xff1a; 用…

java数组之——了解十大排序算法(动画版)

详细的冒泡排序和快速排序请查看文章&#xff1a;java数组之冒泡排序、快速排序-CSDN博客https://blog.csdn.net/weixin_44554794/article/details/140361078 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、计数排序 九、桶…

家庭海外仓怎么拓客:策略落地方法汇总

家庭海外仓因为其高度灵活性和独有的价格优势&#xff0c;还是受到很多跨境卖家欢迎的。不过作为家庭海外仓的经营者&#xff0c;想在这么激烈的竞争下稳定、持续的拿到客户&#xff0c;还是有一定难度的。今天我们就专门来聊一下家庭海外仓的拓客问题。 家庭海外仓在拓客上面临…