[英]How to use 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
是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
工作之前,還有其他事情要做嗎?
我的設置有些不同,但是代碼有效。 設置:使用VS2010 x64編譯器安裝Qt x64 4.8.4和VTK 5.10。
首先,將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();
希望這對您有用!
嘗試在QVTKWidget中設置renderwindow並共享該渲染窗口的交互器,並將渲染器添加到渲染窗口,如下所示:
..
renderWin->addRenderer(_ren);
QVTKWidget1->SetRenderWindow(renderWin);
renderWin->SetInteractor(QVTKWidget1->GetInteractor());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.