1,VS2008下新建一个win32控制台应用程序。命名为Reconstruction。
2,QT相关配置
打开“项目”—“属性”—“配置属性”:
在“常规”选项中将“字符集”改为“使用多字节字符集”,这个主要是因为QT的原因。
在“调试”中将“环境”改为“PATH=D:\Qt\4.7.4\bin”(此处假设将Qt安装在D盘下,版本为4.7.4)。
在“C/C++”—“常规”的“附加包含目录中”添加Qt的include目录,在我的电脑上,依次为:D:\Qt\4.7.4\include; D:\Qt\4.7.4\include\Qt;
D:\Qt\4.7.4\include\QtCore; D:\Qt\4.7.4\include\QtGui。
在“链接器”—“常规”的“附加库目录”中添加Qt的lib库文件所在文件夹,在我的电脑上为:D:\Qt\4.7.4\lib。
在“链接器”—“输入”的“附加依赖项”中添加Qt中的lib文件名称,在我电脑上依次为:QtMultimediad4.lib qtcore4.lib qtgui4.lib qtmain.lib qtmaind.lib。注意各项之间用空格隔开,不是分号。
3,VTK相关配置
在上一篇文章中讲了VTK在VS2008下的编译生成,我把生成的相关文件放在C:\VTK目录下。
打开“项目”—“属性”—“配置属性”:
在“C/C++”—“常规”的“附加包含目录中”添加VTK的include目录,在我的电脑上,为:C:\VTK\include\vtk-5.6。
在“链接器”—“常规”的“附加库目录”中添加VTK的lib库文件所在文件夹,在我的电脑上为:C:\VTK\lib\vtk-5.6。
在“链接器”—“输入”的“附加依赖项”中添加VTK中的lib文件名称,在我电脑上依次为:
QVTK.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
uuid.lib
ole32.lib
oleaut32.lib
comdlg32.lib
advapi32.lib
vtkRendering.lib
vtkGraphics.lib
vtkverdict.lib
vtkImaging.lib
vtkIO.lib
vtkFiltering.lib
vtkCommon.lib
vtkDICOMParser.lib
vtkNetCDF.lib
vtkmetaio.lib
comctl32.lib
wsock32.lib
vtksqlite.lib
vtkpng.lib
vtktiff.lib
vtkzlib.lib
vtkjpeg.lib
vtkexpat.lib
vtksys.lib
ws2_32.lib
vfw32.lib
vtkftgl.lib
vtkfreetype.lib
opengl32.lib
vtkWidgets.lib
vtkVolumeRendering.lib
vtkViews.lib
vtkproj4.lib
vtklibxml2.lib
vtkInfovis.lib
vtkHybrid.lib
vtkGeovis.lib
vtkGenericFiltering.lib
vtkexoIIc.lib
vtkCharts.lib
vtkalglib.lib
注意各项之间用空格隔开,不是分号。
4 Qt界面头文件的编译
假设Qt界面头文件为hello.h,右键hello.h,选择“属性”,在属性页中选择“配置属性”—“常规”,在工具一览选择“自定义生成工具”,在“自定义生成步骤”的命令行选项中中输入“moc hello.h -o moc_hello.h”,输出中填写“moc_hello.h”,附加依赖项输入“moc hello.h”。
5 注意事项
由于要将VTK和Qt一起混合编程,因此在编Qt界面的头文件中,要加入与VTK相关的一些数据,因此,Qt的界面不能用Qt自带的Designer来设计生成。之所以不行是因为用Designer生成的界面对应的头文件是不能更改其内容的。
6 说明
为了使VTK三维重建的窗口在Qt中使用。调用VTK中的QVTKWidget控件,来进行显示,例如:
vtkRenderWindow *renWin = VtkRenderWindow::New();
QVTKWidget *widget = QVTKWidget::New();
widget->SetRenderWindow(renWin);
转载请说明来源,谢谢。