[vtkusers] QVTKWidget2 and vtkImageViewer2
Clinton Stimpson
clinton at elemtech.com
Wed Feb 8 15:21:16 EST 2012
On Wednesday, February 08, 2012 12:05:35 pm Jonathan Morra wrote:
> I am trying to paint on top of a QVTKWidget and am having trouble doing so.
> I have tried to follow the instructions at
> http://vtk.1045678.n5.nabble.com/QVTKWidget-paintEvent-td2852642.html. But
> have since had no luck with QVTKWidget. I tried to swap QVTKWidget with
> QVTKWidget2, but was also unsuccessful there. I was hoping
> 1. If someone could provide a very small example of using QPainter with
> QVTKWidget and vtkImageViewer2.
> 2. A small example of using QVTKWidget2 with vtkImageViewer2.
> 3. A description of what's different between QVTKWidget and QVTKWidget2?
The main difference is that QVTKWidget2 derives from QGLWidget and comes with
the functionality of QGLWidget. For general usage, there probably isn't much
different between the two.
Here's a way to use QPainter with QVTKWidget2:
class MyQVTKWidget2 : public QVTKWidget2
{
public:
MyQVTKWidget2(QWidget* p = NULL) : QVTKWidget2(p)
{
// don't clear the scene when QPainter is constructed, since it will be
used to add
// to the scene
setAutoFillBackground(false);
}
// overload Frame() to add our painting on top of VTK's completed rendering
void Frame()
{
QPainter p(this);
p.drawLine(0,0,100,100);
p.end();
QVTKWidget2::Frame();
}
};
To use that with vtkImageViewer2:
int main(int argc, char** argv)
{
QApplication app(argc, argv);
MyQVTKWidget2 widget;
widget.resize(256,256);
vtkPNGReader* reader = vtkPNGReader::New();
char* fname = vtkTestUtilities::ExpandDataFileName(argc, argv,
"Data/vtk.png");
reader->SetFileName(fname);
delete [] fname;
vtkImageViewer2* image_view = vtkImageViewer2::New();
image_view->SetInputConnection(reader->GetOutputPort());
image_view->SetupInteractor(widget.GetRenderWindow()->GetInteractor());
image_view->SetRenderWindow(widget.GetRenderWindow());
image_view->SetColorLevel(138.5);
image_view->SetColorWindow(233);
widget.show();
app.exec();
image_view->Delete();
reader->Delete();
return 0;
}
--
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com
More information about the vtkusers
mailing list