Add simple slider to QVTKOpenGLWidget

Hi all,

I’m trying to add a simple VTK based 2D slider to a QVTKOpenGLWidget, but it doesn’t show up no matter what I’ve tried. Following is a minimized example that shows what I’m trying to do. Can anybody help me out what I’m doing wrong?

int main(int argc, char **argv) {

  QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat());
  QApplication app(argc, argv);
  QVTKOpenGLWidget widget;

  vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
  widget.SetRenderWindow(renderWindow);

  vtkNew<vtkSphereSource> sphereSource;

  vtkNew<vtkPolyDataMapper> sphereMapper;
  sphereMapper->SetInputConnection(sphereSource->GetOutputPort());

  vtkNew<vtkActor> sphereActor;
  sphereActor->SetMapper(sphereMapper);

  vtkNew<vtkRenderer> renderer;
  renderer->SetBackground(.3, .3, .3);
  renderer->AddActor(sphereActor);

  vtkNew<vtkSliderRepresentation2D> sliderRep;
  sliderRep->SetMinimumValue(3.0);
  sliderRep->SetMaximumValue(20.0);
  sliderRep->SetValue(5.0);

  sliderRep->GetPoint1Coordinate()->SetCoordinateSystemToNormalizedDisplay();
  sliderRep->GetPoint1Coordinate()->SetValue(.1, .1);
  sliderRep->GetPoint2Coordinate()->SetCoordinateSystemToNormalizedDisplay();
  sliderRep->GetPoint2Coordinate()->SetValue(.9, .1);

  vtkNew<vtkSliderWidget> sliderWidget;
  sliderWidget->SetInteractor(widget.GetInteractor());
  sliderWidget->SetRepresentation(sliderRep);
  sliderWidget->SetAnimationModeToAnimate();
  sliderWidget->EnabledOn();

  widget.GetRenderWindow()->AddRenderer(renderer);
  widget.show();

  app.exec();

  return EXIT_SUCCESS;
}

Besides, what strikes me as odd is that all VTK examples that I’ve found didn’t explicitly add the 2D slider into the scene via an actor and a mapper. Adding the slider to the renderer seems to be happening implicit via the interactor, but AFAIK any interactor just translates user input and is not responsible for drawing or rendering stuff?