文档章节

Qt中遇到的Debug/Relase两个不同模式下QVTKWidget控件的一个问题

天蚕宝衣
 天蚕宝衣
发布于 2017/06/21 17:59
字数 402
阅读 73
收藏 0

QVTKWidget控件不是Qt中默认控件,需要手动编译。用CMake编译VTK过程中,需要选择VTK支持QT。网络上有很多教程,不再重复了。

但有一点要提醒大家:只需要将Release版本中QVTKWidgetPlugin.dll和QVTKWidgetPlugin.lib放在designer文件夹下就可以了,QVTK.dll不需要放入该文件夹下,否则会出现:

qwidget: must construct a qapplication before a qpaintde 错误,因为Release与Debug中DLL混合在一起。

vtkImageViewer2类中的对象适合于显示图像,对vtkActor、vtkRender等已经做了封装。

测试代码如下:

    // 创建vtk图像阅读器2类的对象用来显示其他对象读取到内存中的图像。
    m_pImageViewer = vtkSmartPointer<vtkImageViewer2>::New();
    // 渲染场景。
    m_pRenderder = vtkSmartPointer<vtkRenderer>::New();     
    // 设置m_QVTKWidget的渲染器。
    ui->m_QVTKWidget->GetRenderWindow()->AddRenderer(m_pRenderder);
    // 用vtkJPEGReader类的对象读取JPG图像,即将磁盘中的图像加载进内存中。
    vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
    reader->SetFileName(fileName_str);
    // 将reader的输出作为m_pImageViewer的输入,并设置m_pImageViewer与渲染器m_pRenderer的关联。
    m_pImageViewer->SetInput(reader->GetOutput());
    m_pImageViewer->UpdateDisplayExtent();
    // 设置为同一个渲染窗口。
    m_pImageViewer->SetRenderWindow(ui->m_QVTKWidget->GetRenderWindow());
    // 设置渲染场景。
    m_pImageViewer->SetRenderer(m_pRenderder);       
    // 交互方式。
    m_pImageViewer->SetupInteractor(ui->m_QVTKWidget->GetRenderWindow()->GetInteractor());
    // 默认就是这个方向的。    
    m_pImageViewer->SetSliceOrientationToXY(); 
    m_pImageViewer->GetImageActor()->InterpolateOff();
    m_pRenderder->ResetCamera();
    m_pRenderder->DrawOn();
    // 自动绘制出图像。
    ui->m_QVTKWidget->GetRenderWindow()->Render();

QVTKWidget部件显示二维图像的效果如下图,在基于Qt开发的数字图像处理软件中显示,并同时读取图片的尺寸图像深度通道数等基本属性。

这里写图片描述

本文转载自:http://blog.csdn.net/learn_sunzhuli/article/details/45830135

共有 人打赏支持
天蚕宝衣
粉丝 22
博文 239
码字总数 179054
作品 0
天津
私信 提问
ITK, VTK, QT 安装与配置问题记录

问题参考: 问题一:配置完成,运行程序总提示缺少ITKCommon4_*.dll,QVTK.dll等问题: 一 般这种情况是找不到dll所在的路径,环境变量没有设置。在环境变量path中加入ITK,VTK的bin路径,这样...

NineRec
2013/10/13
0
0
闲扯-VTK与QT整合开发中的问题

通篇闲扯。但是发现还是有人在看,而且自己最近重新来过,这篇文章确实略微有用。争取找时间修改下。 之前曾质疑是否要一用QT来整合开发ITK、VTK,原来的想法是直接用VS2010,c++开发。后来发...

NineRec
2013/04/05
0
0
VTK 6.3.0 Qt 5.4 MinGW 4.9.1 Configuration 配置

Download VTK 6.3.0 Download Qt 5.4 with MinGW 4.9.1 Download CMake 3.2.0 I assume you've already installed Qt 5.4 with MinGW 4.9.1 and CMake 3.2.0 correctly. Pre-process the VTK......

机器的心脏
2017/12/15
0
0
Qt自定义控件的创建与初步使用

本篇博客的目的是简单介绍:创建一个用QLabel类来显示图片的自定义控件的编写。在写自定义控件的过程中遇到了很多的难题,但都慢慢解决了,本人对Qt自定义控件的认识还不深刻,做的不对的地方...

qq_15094525
2017/01/06
0
0
topic1:Qt入门之搭建环境与hello world看Qt开发框架

1、搭建开发环境 网上有太多的开发环境的详细文章,并且window开发环境包都封装好了,按着顺序一步步来,基本没有问题,这里说明一下需要安装的内容: 编译器,常常是mingw编译器,可去官网下...

zhouhb1
2013/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
12分钟前
1
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
22分钟前
0
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
32分钟前
0
0
浅谈教你如何掌握Linux系统

linux能做什么?相信绝大数人都有这样的疑问。可以玩吃鸡吗?可以玩lol吗? 如果你是以娱乐的名义来评价linux的可用性,对不起,linux可能不适合你,因为linux是一个工具,他是教你聪明的,不...

linuxprobe16
39分钟前
0
0
java中线程池的生命周期

线程池生命周期包括: RUNNING:接收新的任务并处理队列中的任务 SHUTDOWN:不接收新的任务,但是处理队列中的任务 STOP:不接收新的任务,不处理队列中的任务,同时中断处理中的任务 TIDYING:所...

小刀爱编程
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部