QT+VTK显示图片

参考教学东灵工作室的教程http://blog.csdn.net/www_doling_net/article/details/8668870

但是遇到了一些问题


1、头文件中的onOpenSlot()编译出错,类似于这样的错误

vtkRendering.lib(vtkOpenGLGlyph3DMapper.obj) : error LNK2019: 无法解析的外部符号 __imp_glCallList,该符号在函数 "public: virtual void __cdecl vtkOpenGLGlyph3DMapper::Render(class vtkRenderer *,class vtkActor *)" (?Render@vtkOpenGLGlyph3DMapper@@UEAAXPEAVvtkRenderer@@PEAVvtkActor@@@Z) 中被引用
1>vtkRendering.lib(vtkOpenGLDisplayListPainter.obj) : error LNK2001: 无法解析的外部符号 __imp_glCallList

发现是因为没有定义onOpenSlot()这个函数,只是在头文件中的类进行了声明,在cpp中定义一个它的空函数编译就可以通过了(当然后面是要定义它的,用来实现功能)


2、m_QVTKWidget报错找不到,是因为要去QT的ui文件中设置,这个名字是QVTKWidge空间的名字,在QTDesigner进行设置(或者找到相应的文件直接更改),若改了之后还会有报错,重启项目再试试就可以了,但要确保修改的是正确的对象。


3、编译通过,但读取图片的时候出错了,报错:vtkTrivialProducer :This data object does not contain the requested extent.

原因是用高版本的vtk(我的是6.1)需要在reader->setinputdata后添加一句reader->update();就可以读取图片了

	//用vtkJPEGReader读取JPG图像
	vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
	reader->SetFileName(fileName_str);
	reader->Update();//要加update()这个函数,否则会报错!



4、编译通过之后执行时发生内存泄露之类的错误,回跳到mapper之类的语句中,原因我也不知道,可能是版本问题

在头部加入

#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)

即可


程序截图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值