Discussion:
[vtkusers] vtkParallelCoordinatesView with Qt
Zoltan Kovacs
2018-11-28 11:28:38 UTC
Permalink
Dear all,



Based on the example

https://www.vtk.org/Wiki/VTK/Examples/Cxx/InfoVis/ParallelCoordinatesView

I created a simple Qt project using the class vtkParallelCoordinatesView. It has only a main window with a PushButton and a QWidget to launch a file

opening dialog for any CSV file and view its content. I also created a Qt Form Class called "ParallelCoordinatesView" with the public function "View", which contains the CSV file reading and the parallel coordinates visualization code from the example. I attached the files.

There are two issues with the functions setting up the render window and the interactor in the public function "View".



These function calls are commented out in the code:



// Set up render window

view->GetRenderer()->SetBackground(1.0, 1.0, 1.0);

view->GetRenderer()->GradientBackgroundOff();

view->GetRenderWindow()->SetSize(1200,600);

//view->SetInteractor(renderWindowInteractor);

//view->SetRenderWindow(renderWindow);

view->ResetCamera();

view->Render();

//view->GetInteractor()->Start();



When I compile and run the code in this form, the parallel coordinates view appears in a window detached from the Qt MainWindow after the file test.csv has been read from the file opening dialog.



If I remove the comments only from

//view->SetInteractor(renderWindowInteractor);

//view->SetRenderWindow(renderWindow);

and compile and run the code then the view window appears in the QWidget in the MainWindow, as expected,

but as soon as I start to move the cursor, everything blacks out in the Mainwindow.



If remove the comment only from the line

//view->GetInteractor()->Start();

the I can select lines in the parallel coodinates view vindow, as expected with starting the interactor,

but the Mainwindow hangs.



I would like to ask if there is a proper setup of the render window and the interactor for the class vtkParallelCoordinatesView with Qt? Thank you very much for your help.



Kind regards,

Zoltan
Paulo Carvalho
2018-12-02 13:41:06 UTC
Permalink
Hi, Zoltan,

Please, try the .cpp attached. I managed to get the graph showing
within the main window and with the interactor working. The two reasons
for the misbehavior were:

1) The code created a new renderer instead of using the view's.

2) The view and the Qt widget were using different render window objects.

In conclusion, there were two renderers and two render windows in the
program, causing the observed misbehavior. Let us know whether it works.

[image: image.png]

regards,

Paulo



Em qua, 28 de nov de 2018 às 09:28, Zoltan Kovacs <
Post by Zoltan Kovacs
Dear all,
Based on the example
https://www.vtk.org/Wiki/VTK/Examples/Cxx/InfoVis/ParallelCoordinatesView
I created a simple Qt project using the class vtkParallelCoordinatesView. It has only a main window with a PushButton and a QWidget to launch a file
opening dialog for any CSV file and view its content. I also created a Qt Form Class called "ParallelCoordinatesView" with the public function "View", which contains the CSV file reading and the parallel coordinates visualization code from the example. I attached the files.
There are two issues with the functions setting up the render window and the interactor in the public function "View".
// Set up render window
view->GetRenderer()->SetBackground(1.0, 1.0, 1.0);
view->GetRenderer()->GradientBackgroundOff();
view->GetRenderWindow()->SetSize(1200,600);
//view->SetInteractor(renderWindowInteractor);
//view->SetRenderWindow(renderWindow);
view->ResetCamera();
view->Render();
//view->GetInteractor()->Start();
When I compile and run the code in this form, the parallel coordinates view appears in a window detached from the Qt MainWindow after the file test.csv has been read from the file opening dialog.
If I remove the comments only from
//view->SetInteractor(renderWindowInteractor);
//view->SetRenderWindow(renderWindow);
and compile and run the code then the view window appears in the QWidget in the MainWindow, as expected,
but as soon as I start to move the cursor, everything blacks out in the Mainwindow.
If remove the comment only from the line
//view->GetInteractor()->Start();
the I can select lines in the parallel coodinates view vindow, as expected with starting the interactor,
but the Mainwindow hangs.
I would like to ask if there is a proper setup of the render window and the interactor for the class vtkParallelCoordinatesView with Qt? Thank you very much for your help.
Kind regards,
Zoltan
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
http://www.vtk.org/Wiki/VTK_FAQ
Search the list archives at: http://markmail.org/search/?q=vtkusers
https://public.kitware.com/mailman/listinfo/vtkusers
Loading...