[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