When I use QVTKOpenGlnativeWidget, the volume rendering data of VTKSmartVolumeMapper cannot be displayed. When I change the multi-sampling parameter to 0, it can be displayed, but the effect is not good

Is there a better solution?

QVTKOpenGLNativeWidget supports rendering volumes with vtkSmartVolumeMapper. See SmartVolumeMapper example for an example usage of vtkSmartVolumeMapper.

The only difference would be the render window. Use vtkGenericOpenGLRenderWindow and set it to the widget via QVTKOpenGLNativeWidget::setRenderWindow.

Using QVTKOpenGlnativeWidget with the same parameter as VTKRenderWindow is a big difference