PDA

View Full Version : QVTKWidget



floyd.pepper
11th September 2009, 21:43
Hi there,

I am writing some minimal code get QVTKWidget working in QTCreator. I am using qmake to compile. The code (see below) compiles correctly but when I try to debug F5, I get a crash as soon as it tries to initialize qvtkwidget.

The paths and libraries seem to be correct. I can compile and run a VTK application when I use vtkRenderWindow.

Any help would be appreciated.




#include <QVTKWidget.h>

#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkTextSource.h>
#include <vtkVectorText.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>

int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QMainWindow *mainWindow = new QMainWindow;
mainWindow->setFixedSize(640,360);

QVTKWidget *widget;

widget = new QVTKWidget; // <<-- This is where we crash :(
widget->show();
mainWindow->setCentralWidget(widget);

vtkTextSource *text = vtkTextSource::New();
text->SetText("Hello World!");
text->BackingOff();
vtkVectorText *vectorText = vtkVectorText::New();
vectorText->SetText("QVTKWidget");
vtkPolyDataMapper *textMapper = vtkPolyDataMapper::New();
textMapper->SetInput(text->GetOutput());
vtkPolyDataMapper *vectorTextMapper = vtkPolyDataMapper::New();
vectorTextMapper->SetInput(vectorText->GetOutput());
vtkActor *textActor = vtkActor::New();
textActor->SetMapper(textMapper);
vtkActor *vectorTextActor = vtkActor::New();
vectorTextActor->SetMapper(vectorTextMapper);
vtkRenderer *renderer = vtkRenderer::New();
renderer->SetBackground(0.4,0.6,0.8);
renderer->AddActor(textActor);
renderer->AddActor(vectorTextActor);
vtkRenderWindow *renderWindow = vtkRenderWindow::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetStereoTypeToDresden();

widget->SetRenderWindow(renderWindow);
mainWindow->show();
app.aboutQt();
return app.exec();

}



Any help would be gratefully accepted.

All the best,
Floyd

cristian.a
7th March 2012, 14:15
Hello Pepper,

It might be late, but I think the problem might come from
the fact that you are using the wrong dll.

If you are building in release mode you should use a dll
built in release mode.

Cristian


Hi there,

I am writing some minimal code get QVTKWidget working in QTCreator. I am using qmake to compile. The code (see below) compiles correctly but when I try to debug F5, I get a crash as soon as it tries to initialize qvtkwidget.

The paths and libraries seem to be correct. I can compile and run a VTK application when I use vtkRenderWindow.

Any help would be appreciated.




#include <QVTKWidget.h>

#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkTextSource.h>
#include <vtkVectorText.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>

int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QMainWindow *mainWindow = new QMainWindow;
mainWindow->setFixedSize(640,360);

QVTKWidget *widget;

widget = new QVTKWidget; // <<-- This is where we crash :(
widget->show();
mainWindow->setCentralWidget(widget);

vtkTextSource *text = vtkTextSource::New();
text->SetText("Hello World!");
text->BackingOff();
vtkVectorText *vectorText = vtkVectorText::New();
vectorText->SetText("QVTKWidget");
vtkPolyDataMapper *textMapper = vtkPolyDataMapper::New();
textMapper->SetInput(text->GetOutput());
vtkPolyDataMapper *vectorTextMapper = vtkPolyDataMapper::New();
vectorTextMapper->SetInput(vectorText->GetOutput());
vtkActor *textActor = vtkActor::New();
textActor->SetMapper(textMapper);
vtkActor *vectorTextActor = vtkActor::New();
vectorTextActor->SetMapper(vectorTextMapper);
vtkRenderer *renderer = vtkRenderer::New();
renderer->SetBackground(0.4,0.6,0.8);
renderer->AddActor(textActor);
renderer->AddActor(vectorTextActor);
vtkRenderWindow *renderWindow = vtkRenderWindow::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetStereoTypeToDresden();

widget->SetRenderWindow(renderWindow);
mainWindow->show();
app.aboutQt();
return app.exec();

}



Any help would be gratefully accepted.

All the best,
Floyd