我正在做一个大项目的一部分。我的目标是在QWidget中显示一个vtkRenderer。为此,我编写了这个类:
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。我链接了项目和VTK,并显示了一个正常的vtkRenderWindow工作良好。在QVTKWidget工作之前,还有其他事情要做吗?
发布于 2013-10-08 01:31:38
我的设置稍有不同,但代码可以正常工作。设置: Qt x64 4.8.4和VTK 5.10,使用VS2010 x64编译器。
首先,将verticalLayout小部件添加到主UI屏幕。我认为任何其他布局都可以工作,但我还没有尝试过。在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();希望这对你有用!
发布于 2013-09-27 20:24:12
尝试在QVTKWidget中设置渲染器窗口并共享渲染窗口交互器,并将渲染器添加到渲染窗口,如下所示:
..
renderWin->addRenderer(_ren);
QVTKWidget1->SetRenderWindow(renderWin);
renderWin->SetInteractor(QVTKWidget1->GetInteractor());https://stackoverflow.com/questions/19029045
复制相似问题