QVTKInteractor cannot control the event loop解决方案

在结合使用Qt和VTK的时候,采用QVTKOpenGLWidget控件作为结合两者的接口,在Qt界面上创建了一个可以显示vtk图形的窗口。
为了使用这个窗口,假定窗口名为openGLWidget,用以下代码获得了窗口内的一个renderer并初始化了窗口。

vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
vtkNew<vtkGenericOpenGLRenderWindow> window;
ui.openGLWidget->SetRenderWindow(window);
ui.openGLWidget->GetRenderWindow()->AddRenderer(renderer);
ui.openGLWidget->show();
ui.openGLWidget->GetInteractor()->Initialize();
ui.openGLWidget->GetInteractor()->Start();

发现vtk会自动开启一个警告窗口,提示

QVTKInteractor cannot control the event loop

[vtkusers] Problem with checkerWidget in VTK+QT页面中找到了答案。原来QVTKOpenGLWidget会在创建时完成Interactor创建和开启,保证其对窗口的控制,因此

ui.openGLWidget->GetInteractor()->Initialize();
ui.openGLWidget->GetInteractor()->Start();

这两句话是不必要的。
删除这两句话后,程序不再产生vtk错误窗口。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是一篇对Run Loop开发文档《Threading Program Guide:Run Loops》的翻译,来...
    鸿雁长飞光不度阅读 3,729评论 3 29
  • 界面 主窗口界面设计 标题栏:直接设Window-Title属性;Window-icon属性可加图标。底部状态栏:...
    码园老农阅读 3,865评论 1 13
  • 月色融融又几更, 落花不识夜归人。 愁入眉心捋云鬓,乱纷纷, 弹去浮尘步履轻。 身居陋室观古今, 多少豪杰寻功名。...
    勤丰阅读 310评论 1 3
  • 昨晚睡的迟。被闹钟叫醒时全身酸痛,挣扎了好一会儿才坐起身来。再看闹钟已经7点12了,用力晃了晃头,下床,开电视听新...
    中华英雄长刀研阅读 270评论 10 5
  • 在寒冷的冬天,舒舒服服地泡个温泉,瞄一瞄周围姑娘妙曼的身姿,放松一下身心,是许多懂得享受生活的人们冬季常有的选择。...
    DaDa要流浪阅读 601评论 0 1