Как использовать QVTKWidget

Я работаю над частью большого проекта.
Моя цель — показать vtkRenderer в QWidget, Для этого я написал этот класс:

CModelViewWidget::CModelViewWidget(QWidget *parent) :
QWidget(parent)
{
_qVtkWidget = new QVTKWidget(this,Qt::Widget);
_rend = vtkRenderer::New();

this->showVTK();

_qVtkWidget->GetRenderWindow()->AddRenderer(_rend);

}

где _qVtkWidget это QVTKWidget, _rend vtkRenderer а также showVTK() функция, которая добавляет сферу к _rend,

Я могу скомпилировать эти вещи, но когда я хочу их протестировать, программа вылетает. Сообщение об ошибке:

[pathToProject]/qtCT/qtcreator-build/bin/mabviewer: symbol lookup error:[pathToProject]/qtCT/qtcreator-build/lib/libplugwdgt_modelviz.so: undefined symbol: _ZN10QVTKWidgetC1EP7QWidget6QFlagsIN2Qt10WindowTypeEE

Я использую VTK5.8, QTCreator 2.4.1 с QT 4.7.4 и cmake. Я связал проект и ВТК и показал нормальный vtkRenderWindow работает отлично. Есть ли что-то еще, прежде чем QVTKWidget работает?

0

Решение

Моя установка немного отличается, но код работает. Установка: Qt x64 4.8.4 и VTK 5.10, используя компилятор VS2010 x64.

Сначала добавьте виджет вертикальной компоновки на главный экран пользовательского интерфейса. Я предполагаю, что любой из других макетов будет работать, но я не пробовал их. В редакторе C ++ попробуйте:

 _qvtkWidget = new QVTKWidget;
ui->verticalLayout->addWidget(_qvtkWidget);
ui->verticalLayout->update();
_qvtkRenderer = vtkRenderer::New();
_qvtkWidget->GetRenderWindow->AddRenderer(_qvtkRenderer);
_qvtkRenderer->SetBackground(0,0,0);
_qvtkRenderer->Render();

Надеюсь, что это работает для вас!

1

Другие решения

Попробуйте установить renderwindow в QVTKWidget и поделиться интерактором этого окна рендеринга и добавить рендер в окно рендеринга как:

..
renderWin->addRenderer(_ren);
QVTKWidget1->SetRenderWindow(renderWin);
renderWin->SetInteractor(QVTKWidget1->GetInteractor());
0

По вопросам рекламы [email protected]