Vtk渲染除qvtkwidget之外的另一个窗口

时间:2012-08-24 09:14:04

标签: qt render vtk

我有一个小问题,我认为这很容易,所以得到一个解决方案,但我已经到了尝试一切,仍然没有工作的点。我确信它很简单,所以我要求帮助,因为我无法自己解决这个问题。

我在centralwidget上有一个qvtkwidget,没有问题。

问题在于,每次运行程序时,它都会在界面之外再打开另一个框。

这是我的代码中对此问题很重要的部分。

// Create renderer
  ren= vtkRenderer::New();
    ren->AddActor(outlineActor);
    ren->SetBackground(0.1,0.1,0.3);

// Drawing some X,Y,Z axes
  axes= vtkCubeAxesActor2D::New();
    //more stuff
    ren->AddViewProp(axes);
    ren->ResetCamera();

// Create a window for the renderer
  renWin= vtkRenderWindow::New();
    renWin->AddRenderer(ren);

// Set an user interface interactor for the render window
  iren= vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(renWin);

  style = vtkInteractorStyleTrackballCamera::New();
    iren->SetInteractorStyle(style);

// Create a inicial camera view
vtkCamera *inicam= ren->GetActiveCamera();
  inicam->Zoom(1);
  inicam->SetViewUp(0, 0, 0);
  inicam->Azimuth(45);
  ren->ResetCameraClippingRange();

// Start the initialization and rendering
    renWin->Render();

// Assign the rendering window to the qvtkwidget
  ui->qvtkWidget->SetRenderWindow(renWin);

如果有人对此我有任何想法,我会很感激。

2 个答案:

答案 0 :(得分:1)

QVTKWidget已经有了一个交互器。所以请改用它:

    auto interactorStyle = vtkSmartPointer<TestInteractorStyle>::New();

    QVTKInteractor* interactor = widget->GetInteractor();

    interactor->SetInteractorStyle(interactorStyle);

答案 1 :(得分:0)

看到这个例子之后我就开始工作了。

  ui->qvtkWidget->GetRenderWindow()->AddRenderer(ren);