Qt+VTK(QVTKWidget的应用)

1 篇文章 0 订阅

void VTKMainWindow::onOpenSlot()
{
    QString filter;
    filter = "DICM image file (*.dcm)";

    QDir dir;
    fileName = QFileDialog::getOpenFileName( this, QString(tr("Open DICOM Image")), dir.currentPath() , filter );
    if ( fileName.isEmpty() == true ) 
        return;

    vtkSmartPointer<vtkDICOMImageReader> reader = vtkSmartPointer<vtkDICOMImageReader>::New();
    // 支持带中文路径的读取

    QByteArray ba = fileName.toLocal8Bit();
    const char *fileName_str = ba.data();
    reader->SetFileName(fileName_str);
    reader->Update();

    m_pImageViewer = vtkSmartPointer<vtkImageViewer2>::New();
    m_pImageViewer->SetInputConnection(reader->GetOutputPort());

    m_pImageViewer->SetRenderWindow(this->qvtkWidget->GetRenderWindow());
    m_pImageViewer->SetupInteractor(this->qvtkWidget->GetRenderWindow()->GetInteractor());
    this->qvtkWidget->GetRenderWindow()->Render();
}

其中OpenSlot响应pushbutton的一个信号,然后打开一个文件对话框,选择一个DICOM文件。其中最重要的就是通过this->qvtkWidget->GetRenderWindow()设置RenderWindow,

m_pImageViewer->SetupInteractor(this->qvtkWidget->GetRenderWindow()->GetInteractor());来设置交互模式。

qvtkWidget是QVTKWidget的控件ID,这样就完成了QVTKWidget和Qt的融合。下图就是对应的界面,窗口就是对应的QVTKWidget控件。

 

评论 32 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

北冥有鱼1989

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值