我有一个小问题,我认为这很容易,所以得到一个解决方案,但我已经到了尝试一切,仍然没有工作的点。我确信它很简单,所以我要求帮助,因为我无法自己解决这个问题。
我在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);
如果有人对此我有任何想法,我会很感激。
答案 0 :(得分:1)
QVTKWidget已经有了一个交互器。所以请改用它:
auto interactorStyle = vtkSmartPointer<TestInteractorStyle>::New();
QVTKInteractor* interactor = widget->GetInteractor();
interactor->SetInteractorStyle(interactorStyle);
答案 1 :(得分:0)
ui->qvtkWidget->GetRenderWindow()->AddRenderer(ren);