I am able to create a 2d plot using a QVTKWidget, however I am unable to interact with that plot. I pretty much new to VTK, so I am kind of at a loss as to how to connect the vtk interactors and Qt. I have poked around a bit and noticed a QVTKInteractor class, but anything I do with that results in my 2d plot going away to be replaced with a blank white area. Below is the code that I am using. Just as a note, this is being done in a class that extends a QMainWindow.<br>
<br>//snippet//<br><br><br> view = new QVTKWidget;<br> setCentralWidget(view);<br><br> int DIM = 500;<br> vtkDataArray *dataArray1 = vtkDataArray::CreateDataArray(VTK_FLOAT);<br> dataArray1->SetNumberOfTuples(DIM);<br>
<br> vtkDataArray *dataArray2 = vtkDataArray::CreateDataArray(VTK_FLOAT);<br> dataArray2->SetNumberOfTuples(DIM);<br><br> int t;<br> for (t = 0; t < DIM; t++)<br> {<br> float x = t;<br> float y = vtkMath::Random(0.0f,1.0f);<br>
dataArray1->SetTuple(t, &x);<br> dataArray2->SetTuple(t, &y);<br> }<br><br> vtkFieldData *fieldData = vtkFieldData::New();<br> fieldData->AllocateArrays(2);<br> fieldData->AddArray(dataArray1);<br>
fieldData->AddArray(dataArray2);<br><br> vtkDataObject *dataObject = vtkDataObject::New();<br> dataObject->SetFieldData(fieldData);<br><br> vtkXYPlotActor *plot = vtkXYPlotActor::New();<br> plot->AddDataObjectInput(dataObject);<br>
plot->SetTitle("Plot");<br> plot->SetXTitle("X-Axis");<br> plot->SetYTitle("Y-Axis");<br> plot->SetXValuesToValue();<br> plot->SetWidth(0.9);<br> plot->SetHeight(0.9);<br>
plot->SetPosition(0.05, 0.05);<br> plot->LegendOn();<br> plot->PickableOff();<br> plot->PlotCurvePointsOn();<br> plot->PlotCurveLinesOff();<br><br> plot->SetDataObjectXComponent(0, 0);<br>
plot->SetDataObjectYComponent(0, 1);<br> plot->SetPlotColor(0, 1.0, 0.0, 0.0);<br> plot->SetPlotLabel(0, "My Label");<br> //plot->GetProperty()->SetColor(0.0, 0.0, 0.0);<br><br> vtkRenderer *renderer = vtkRenderer::New();<br>
renderer->SetBackground(0, 0, 0);<br> renderer->AddActor2D(plot);<br><br> vtkRenderWindow *renderWindow = vtkRenderWindow::New();<br> renderWindow->SetSize(550, 450);<br> renderWindow->AddRenderer(renderer);<br>
// vtkRenderWindowInteractor* inter = QVTKInteractor::New();<br>// renderWindow->SetInteractor(inter);<br> view->SetRenderWindow(renderWindow);<br><br>//end-snippet//<br>