【VTK】关于QVTKOpenGLWidget的RenderWindow设置问题

在这篇文章:【VTK】use vtk in qt widget example 的基础上继续实验。

如果不给QVTKOpenGLWidget设置RenderWindow,尝试直接去默认默认值,那么它的返回值是一个nullptr。


    printf( "ui->qvtkWidget->GetRenderWindow(): %p\n", ui->qvtkWidget->GetRenderWindow() );

    // ui->qvtkWidget->GetRenderWindow(): 0x0

同时,我们发现,程序运行得到的界面,QVTKOpenGLWidget所占据的部分是透明的。

【VTK】关于QVTKOpenGLWidget的RenderWindow设置问题

但是,我在朋友的电脑上有这样的发现: 他project环境是:

win10
QT 5.7.0
Qt Creator 4.0.2
MSVC 2013, bits
VTK7.1.0,没有QVTKOpenGLWidget,替代者是QVTKWidget。

在他的工程中,我没有搜索到SetRenderWindow这样的关键词,但是却直接使用了GetRenderWindow进行AddRenderer, SetNumberOfLayers等操作。这应该表明, QVTKWidget有默认的RenderWindow,而QVTKOpenGLWidget是没有的(是空指针)。
据此,我找到以前使用过QVTKWidget的练习:vtk双窗口联动实验
做了这样的更改:

【VTK】关于QVTKOpenGLWidget的RenderWindow设置问题

QVTKWidget不设置renderWindow,直接使用默认对象,结果也是能正常运行的。

【VTK】关于QVTKOpenGLWidget的RenderWindow设置问题

吐槽:现在的****怎么连gif都不能显示。