1. 程式人生 > >【VTK】關於QVTKOpenGLWidget的RenderWindow設定問題

【VTK】關於QVTKOpenGLWidget的RenderWindow設定問題

如果不給QVTKOpenGLWidget設定RenderWindow,嘗試直接去預設預設值,那麼它的返回值是一個nullptr。


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

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

同時,我們發現,程式執行得到的介面,QVTKOpenGLWidget所佔據的部分是透明的。

在這裡插入圖片描述

但是,我在朋友的電腦上有這樣的發現: 他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雙視窗聯動實驗
做了這樣的更改:

在這裡插入圖片描述

QVTKWidget不設定renderWindow,直接使用預設物件,結果也是能正常執行的。

在這裡插入圖片描述