一下是整个过程需要的代码,自己经过实验有几个需要注意的地方,也有几个问题,具体原因不清楚,欢迎评论区交流。
注意:
当使用QVTKOpenGLWidget时,QVTKOpenGLWidget是自带交互器的,不需要像使用VTK自带窗口那样配置交互器。获取交互器的方法为 m_widget->GetInteractor() 。本文中使用的是QVTKOpenGLWidget,根据版本可以使用其他的,一般都支持向下兼容,与QVTKOpenGLWidget相对应的是vtkGenericOpenGLRenderWindow,不同的QVTKWidget对应的vtkRenderWindow也不同,需要注意。
问题一:
当使用UI界面放置一个QWidget并将其提升为QVTKOpenGLWidget,再进行和RenderWindow配置时会出现显示不出来,当你在另一个子函数中运行通过VTK自带窗口显示后,在UI界面放置的QVTKOpenGLWidge将自动显示。这个地方不知道时什么原因导致的。解决的办法就时用程序实例化一个QVTKOpenGLWidge,其他地方不变即可。
问题二:
当多窗口布局QVTKOpenGLWidge,有时候因为布局的顺序不同,会导致必须鼠标在体绘制窗口点两下才会显示。
QGridLayout* mainLayout = new QGridLayout;
ui.centralWidget->setLayout(mainLayout);
m_widget = new QVTKOpenGLWidget(this);
mainLayout->addWidget(m_widget);
QString path = "D:\\Date\\BTO\\MRI-DCM&