QT传输函数控件设计3 QVTKWidget和QT图形界面的融合

2024-04-07 21:08

本文主要是介绍QT传输函数控件设计3 QVTKWidget和QT图形界面的融合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当然我们的项目不可能真的是零基础的,如果你连什么是QDockWidget,连怎么写个信号和槽都不清楚,那就去学QT吧,反正又不难,期待我们再会。

之前是因为xml和图形项场景之类的我觉得可能大家接触比较少,而且网上的资料特别是xml文件解析的资料不太全面,所以我才单独花了一周多的时间写了二十多节来讲解的,这里关于QWidget的常见的各种控件的用法不再做单独解释(反正很简单,有点经验一看就知道啥意思了)。

首先新建一个VS的QT工程,基类设置QMainWindow,配置好QT+VTK的环境。

注意在编译的时候,可能会出现的几个问题,这里给列一下,如果遇到其他问题,可以自己Google或者百度解决。

1.  QWidget: Must construct a QApplication before a QWidget

如果你的VTK版本,尤其是编译生成的 QVTKWidget 版本是 Debug 或者 RelWithDebInfo ,都会出现这种错误。需要重新进行编译。

2. No override found for vtkRenderWindow

需要在程序运行之前(vtk的头文件们后面)加上:

VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);

3. 由于找不到vtkGUISupportQt-7.1.dll,程序终止

在工程右键,属性

然后 调试——环境——编辑

然后加上我们这个bin目录。(或者直接加在系统环境变量里。)

——————————————————————————————————————————————————

一般而言如果VTK+QT正常编译好的话,问题就是这些。

现在我们要在MainWindow的centralWidget里面加入QVTKWidget.

首先放入头文件:

#include "QVTKWidget.h"

然后在类中定义:

	QWidget *centralWidget;QVTKWidget *m_QVTKWidget;QHBoxLayout *layout;

之后在cpp文件的构造函数中写入:

	setWindowState(Qt::WindowMaximized);centralWidget = new QWidget(this);setCentralWidget(centralWidget);MainLayout = new QHBoxLayout(centralWidget);myQVTKWidget = new QVTKWidget(centralWidget);MainLayout->setAlignment(Qt::AlignCenter);MainLayout->addWidget(myQVTKWidget);

因为整体图有点大,这里就不显示了。显示效果是一个主窗口,中央有一个黑色的区域。

下一节我们再把上一节的程序移植进去。

这篇关于QT传输函数控件设计3 QVTKWidget和QT图形界面的融合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883677

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

Mybatis对MySQL if 函数的不支持问题解读

《Mybatis对MySQLif函数的不支持问题解读》接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函... 目录MyBATis对mysql if 函数的不支持问题描述经过查询网上搜索资料找到原因解决方案总结Myb

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

Qt实现删除布局与布局切换功能

《Qt实现删除布局与布局切换功能》在Qt应用开发中,动态管理布局是一个常见需求,比如根据用户操作动态删除某个布局,或在不同布局间进行切换,本文将详细介绍如何实现这些功能,并通过完整示例展示具体操作,需... 目录一、Qt动态删除布局1. 布局删除的注意事项2. 动态删除布局的实现步骤示例:删除vboxLay

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4