2

我有一个小问题,我认为这很容易得到解决方案,但我已经到了尝试一切但仍然无法正常工作的地步。我确定这很简单,所以我正在寻求帮助,因为我自己无法弄清楚。

我在中央小部件上有一个 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);

如果有人对此有任何想法,我将不胜感激。

4

2 回答 2

1

QVTKWidget 已经有一个交互器。所以改用那个:

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

    QVTKInteractor* interactor = widget->GetInteractor();

    interactor->SetInteractorStyle(interactorStyle);
于 2016-07-26T11:55:53.840 回答
0

看到这个例子后,我得到了它的工作。

  ui->qvtkWidget->GetRenderWindow()->AddRenderer(ren);
于 2012-08-28T09:51:38.670 回答