[vtkusers] QVTKWidget2 and vtkImageViewer2

Jonathan Morra jonmorra at gmail.com
Wed Feb 8 16:33:06 EST 2012


My fault, I figured it out (forgot to include a header).  This works great,
thanks!!

On Wed, Feb 8, 2012 at 1:12 PM, Jonathan Morra <jonmorra at gmail.com> wrote:

> When I try this I get
> 'vtkImageViewer2::SetRenderWindow' : cannot convert parameter 1 from
> 'vtkGenericOpenGLRenderWindow *' to 'vtkRenderWindow *'
> Types pointed to are unrelated; conversion requires reinterpret_cast,
> C-style cast or function-style cast
>
> Can I just do a static cast?
>
> On Wed, Feb 8, 2012 at 12:21 PM, Clinton Stimpson <clinton at elemtech.com>wrote:
>
>> 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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120208/82dbc2a3/attachment.htm>


More information about the vtkusers mailing list