首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QVTKWidget

如何使用QVTKWidget
EN

Stack Overflow用户
提问于 2013-09-26 21:01:07
回答 2查看 11.1K关注 0票数 0

我正在做一个大项目的一部分。我的目标是在QWidget中显示一个vtkRenderer。为此,我编写了这个类:

代码语言:javascript
复制
CModelViewWidget::CModelViewWidget(QWidget *parent) :
QWidget(parent)
{
    _qVtkWidget = new QVTKWidget(this,Qt::Widget);
    _rend = vtkRenderer::New();

    this->showVTK();

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

}

其中_qVtkWidgetQVTKWidget_rendvtkRenderershowVTK()是将球体添加到_rend的函数。

我可以编译这些东西,但是当我想测试它们的时候,程序崩溃了。错误消息为:

代码语言:javascript
复制
[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工作之前,还有其他事情要做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-08 01:31:38

我的设置稍有不同,但代码可以正常工作。设置: Qt x64 4.8.4和VTK 5.10,使用VS2010 x64编译器。

首先,将verticalLayout小部件添加到主UI屏幕。我认为任何其他布局都可以工作,但我还没有尝试过。在C++编辑器中尝试:

代码语言:javascript
复制
 _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
EN

Stack Overflow用户

发布于 2013-09-27 20:24:12

尝试在QVTKWidget中设置渲染器窗口并共享渲染窗口交互器,并将渲染器添加到渲染窗口,如下所示:

代码语言:javascript
复制
..
renderWin->addRenderer(_ren); 
QVTKWidget1->SetRenderWindow(renderWin);
renderWin->SetInteractor(QVTKWidget1->GetInteractor());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19029045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档