vtk各渲染窗口区别¶
网上很多案例使用 qt+vtk的时候用 QVTKWidget、QVTKWidget2、QVTKOpenGLWidget、QVTKOpenGLNativeWidget,比较懵逼。
更正 :包含 QVTKOpenGLWidget 的 VTK 的第一个版本是VTK 8.0.0!!!
1 QVTKxxxWidget 如何使用¶
每个 widget 都提供了不同的功能以及不同的 API,但是 widget 的创建以及使用基本一样。
- 实例化widget
- 指定渲染窗口交互器
- 创建回调函数(qt里就直接绑定信号和槽)
- 创建模型,并与widget关联
- 激活widget
- 反激活widget
2 QVTKxxxWidget 的关系¶
| 类 | 介绍 |
|---|---|
| QVTKWidget | 用来在 Qt 的 QWidget 中显示 vtkRenderWindow |
| QVTKWidget2 | 用来在 Qt 的 QGLWidget 中显示 vtkRenderWindow |
| QVTKOpenGLWidget | 用来在 Qt 的 QWidget 中显示 vtkRenderWindow |
| QVTKOpenGLNativeWidget | 用来在 Qt 的 QOpenGLWidget 中显示 vtkGenericOpenGLRenderWindow |
| - QGLWidget、QOpenGLWidget 类均继承自 QWidget 用于渲染 OpenGL 图形。 | |
| - QVTKWidget2 比 QVTKWidget 渲染快、效果好,使用基本一样。 | |
| - QVTKOpenGLNativeWidget 比 QVTKOpenGLWidget 渲染快、效果好,使用基本一样。 | |
| - QVTKOpenGLWidget 比 QVTKWidget渲染快、效果好,使用基本一样。 | |
| - QVTKOpenGLNativeWidget 比 QVTKWidget2 渲染快、效果好,使用基本一样。 |
Qt5.4 以后引入 QVTKOpenGLWidget/QVTKOpenGLWidget
vtk 8.2.X 以后引入 QVTKOpenGLNativeWidget
3 使用那个 QVTKxxxWidget¶
_放弃使用 QVTKWidget。 包含 QVTKOpenGLWidget 的VTK的第一个版本是 VTK 8.0.0! 如果你是 Qt5.4 以前,使用 QVTKWidget2。 如果你是 Qt5.4 以后,vtk8.1X 及以前 请使用 QVTKOpenGLWidget。 如果你是 Qt5.4 以后,vtk8.2X 使用 QVTKOpenGLNativeWidget。
4 找不到QVTKOpenGLWidget/QVTKOpenGLNativeWidget¶
5 Qt Design 里拖动 QVTKxxxWidget¶
官方仅提供QVTKWidget,需要手动放到qt design下的plugin里。
放弃在 Design 里拖动,直接拖动 QWidget 然后继承,非要搞也是自己去封装自定义控件。