c++ - 如何使用QVTKWidget

标签 c++ qt vtk qvtkwidget

我正在参与一个大项目的一部分。 我的目标是在 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 是一个 vtkRenderershowVTK() 将球体添加到 _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 工作之前,还有其他事情要做吗?

最佳答案

我的设置有点不同,但代码有效。设置:Qt x64 4.8.4 和 VTK 5.10,使用 VS2010 x64 编译器。

首先,向主 UI 屏幕添加一个 verticalLayout 小部件。我想任何其他布局都可以,但我还没有尝试过。在 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();

希望这对你有用!

关于c++ - 如何使用QVTKWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19029045/

相关文章:

python - 导入 OpenCV python 模块时出错(使用 Qt 和 QtOpenGL 构建时)

css - QPushButton 没有改变背景颜色

python - 学习 VTK 库工具包的推荐资源和教程有哪些?

python - VTK 与真正的 X 一起工作,与 Xvfb 一起崩溃

c++ - 如何将 QML 信号与 C++ 槽连接?

c++ - VTK + Cmake-> USE_VTK_RENDERING错误

c++ - 公共(public) const 变量或带有 get 函数的私有(private)变量,哪个更可取?

c++ - 试图替换 C++ 字符串中的字符,完全卡住

c++ - 当我在快速排序算法的递归调用中包含主元时,为什么会出现堆栈溢出?

c++ - 如果我输入一个字母,为什么这段代码会陷入无限循环?