C++ Vtk图表以QT为单位进行中断;未找到';vtkContextDevice2D";

C++ Vtk图表以QT为单位进行中断;未找到';vtkContextDevice2D";,c++,qt,vtk,C++,Qt,Vtk,我无法在QT中使用任何类型的vtk 2D图表,否则会出现错误: “一般警告:在vtkContextDevice2D.cxx的第31行中,错误:找不到'vtkContextDevice2D'的替代。” 关于这一点的讨论非常有限,几乎所有的建议都是升级qt/vtk,但是这些都已经有一年了,而我正在使用最新的版本 这也无济于事: include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was b

我无法在QT中使用任何类型的vtk 2D图表,否则会出现错误:
“一般警告:在vtkContextDevice2D.cxx的第31行中,错误:找不到'vtkContextDevice2D'的替代。”

关于这一点的讨论非常有限,几乎所有的建议都是升级qt/vtk,但是这些都已经有一年了,而我正在使用最新的版本

这也无济于事:

include "vtkAutoInit.h"   
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2  
VTK_MODULE_INIT(vtkInteractionStyle);  
信息:64位机器上的Win64,vtk8.2.0,Qt5.13.0,编译/内置MCVS2017(版本x64),带有cmake3.15.0
(其他一切都可以正常工作,甚至使用vtk进行3D渲染)

代码:


我在运行此示例时遇到了类似的问题:,我通过链接以下内容修复了此问题:


似乎我错过了一些库。

这很奇怪:我在github上找到了的源代码,但我找不到google提供的任何
vtkContextDevice2
(除了你的问题)。打字错误?github上的当前源代码:
vtkContextDevice2D.cxx:31:vtkAbstractObjectFactoryNewMacro(vtkContextDevice2D)
对不起,我刚刚意识到你的意思,这确实是一个打字错误。我只想强调,我可以在qt中成功地进行vtk的3D渲染,没有错误,但2D中的任何东西都会像这样中断。cmake中的所有内容都是无错误的。我完全忘了用答案更新这个问题。事实证明,我的CMake文件中缺少vtkRenderingContextOpenGL2。
view->SetInteractor(this->qvtkWidgetRight->GetInteractor());  
this->qvtkWidgetRight->SetRenderWindow(view->GetRenderWindow());
find_package(VTK COMPONENTS
  vtkChartsCore
  vtkCommonCore
  vtkCommonDataModel
  vtkInteractionStyle
  vtkRenderingContext2D
  vtkRenderingContextOpenGL2
  vtkRenderingCore
  vtkRenderingFreeType
  vtkRenderingGL2PSOpenGL2
  vtkRenderingOpenGL2
  vtkViewsContext2D
  QUIET