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:

Open CMakeLists.txt in your extracted VTK-6.3.0 folder, find set(VTK_USE_WIN32_THREADS 1), change it to: set(VTK_USE_PTHREADS 1)

mark_as_advanced(VTK_THREAD_MODEL)
if(CMAKE_USE_WIN32_THREADS_INIT)
  set(VTK_USE_PTHREADS 1)
  set(CMAKE_THREAD_LIBS_INIT "")
elseif(CMAKE_USE_PTHREADS_INIT)
  set(VTK_USE_PTHREADS 1)
  if(CMAKE_HP_PTHREADS_INIT)
    set(VTK_HP_PTHREADS 1)
  endif()
elseif(CMAKE_USE_SPROC_INIT)
  set(VTK_USE_SPROC 1)
endif()
set(CMAKE_THREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}" CACHE STRING "Thread library used.")

 

Open C:\VTK6.3.0\VTK-6.3.0\ThirdParty\libxml2\vtklibxml2\threads.c , add #undef HAVE_WIN32_THREADS after #include "libxml.h"

#define IN_LIBXML
#include "libxml.h"
#undef HAVE_WIN32_THREADS
#include <string.h>

 

Compile the VTK:

Start CMake 3.2.0, fill the source and destination:

source: C:/VTK6.3.0/VTK-6.3.0

destination: C:/VTK6.3.0/build

Click Configure and use MinGW Makefiles to complie.

 

When first configure is done, select Grouped and Advanced.

Go to CMAKE->CMAKE_INSTALL_PREFIX, change the value to C:/VTK6.3.0/MinGW

Go to Module, select Module_vtkGUISupportQtModule_vtkGUISupportQtOpenGLModule_vtkGUISupportQtSQLModule_vtkGUISupportQtWebkitModule_vtkRenderingQtModule_vtkViewsQt

Go to VTK, select VTK_Group_Qt

Go CMake->CMAKE_BUILD_TYPE, change value to Release

Click Add Entry, add QT_QMAKE_EXECUTABLE as Name, PATH as Type, C:/Qt/5.4/mingw491_32/bin/qmake.exe as value:

 

Click Add Entry, add CMAKE_PREFIX_PATH as Name, PATH as Type, C:/Qt/5.4/mingw491_32 as value:

 

Click Configure again, and you gonna get an error said: "Error in configuration processs, project files may be invalid."

Go to Ungrouped Entries->QT_VTK_VERSION, change value to 5, then click Configure again.

After configure is done, click Generate.

 

Go back to your build folder, open command line, type: mingw32-make

Wait a long time for make process, have a cup of coffee :)

After make is done, type mingw32-make install

 

Now, the configuration is done, enjoy it :)

 

Use the VTK:

Create new Qt Widgets, change .pro file to:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = ImageViewer
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH += C:\VTK6.3.0\MinGW\include\vtk-6.3

LIBS += -LC:\\VTK6.3.0\\MinGW\\bin \
        libvtkGUISupportQt-6.3 \
        libvtkIOImage-6.3 \
        libvtkInteractionImage-6.3 \
        libvtkRenderingCore-6.3 \
        libvtkCommonExecutionModel-6.3 \
        libvtkCommonCore-6.3 \
        libvtkRenderingOpenGL-6.3 \
        libvtkInteractionStyle-6.3 \

 

and the main.cpp :

#include "mainwindow.h"
#include <QApplication>

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)

#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkPNGReader.h"
#include "QVTKWidget.h"
#include "vtkImageData.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QVTKWidget widget;

    char filename[] = "img.png";
    vtkPNGReader* reader = vtkPNGReader::New();
    reader->SetFileName(filename);
    reader->Update();

    vtkImageViewer* imageView = vtkImageViewer::New();
    imageView->SetInputConnection(reader->GetOutputPort());

    widget.SetRenderWindow(imageView->GetRenderWindow());
    imageView->SetupInteractor(widget.GetRenderWindow()->GetInteractor());
    imageView->SetColorLevel(138.5);
    imageView->SetColorWindow(233);

    int *dims = reader->GetOutput()->GetDimensions();
    widget.resize(dims[0], dims[1]);
    widget.show();

    app.exec();

    imageView->Delete();
    reader->Delete();
    return 0;
}

 

Use the QVTKWidget in Qt Designer:

Copy libQVTKWidgetPlugin.dll from C:\VTK6.3.0\MinGW\plugins\designer to:

C:\Qt\5.4\mingw491_32\plugins\designer

C:\Qt\Tools\QtCreator\bin\plugins\designer

 

If you use independent Qt Designer, you will find QVTK after Display Widgets.

If you want to use QVTKWidget inside QtCreator, it might not show in the left list, but you can promote a QWidget to QVTKWidget with including the QVTKWidget.h

 

Here is How to configure ITK:

ITK 4.8.1 Qt 5.4 MinGW 4.9.1 Configuration 配置

 

Reference:

http://zhangxc.com/2015/02/qt5-mingw-cmake-vtk6

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值