由于mitk.net被人恶意抢注, 中科院分子影像重点实验室的www.mitk.net 改到 www.mitk.net.cn 。
目录:
第一章 《DCMTK(MD版)、QT、VS2015编写Dicom序列浏览应用程序-新建项目,配置环境》
第二章 《第二章 基于QT和DCMTK的Dicom 图像浏览器---界面设计》
第三章 《 基于QT和DCMTK的Dicom 图像浏览器---单个Dicom图像读取类》
第四章 《基于QT和DCMTK的Dicom 图像浏览器---检查文件夹下Dicom序列个数》
第五章 《基于QT和DCMTK的Dicom 图像浏览器---Dicom图像序列类》
第六章 《基于QT和DCMTK的Dicom 图像浏览器---Dicom视图类》
第七章 《基于QT和DCMTK的Dicom 图像浏览器---收尾》
收尾二 实现三视图
收尾三 打包应用程序
一、编辑 DicomBrowse.ui , 再添加两个DicomView 视图框(直接复制XY的就可以),布局间距改为0;添加完成后保存。
二、DicomView.cpp
...
void DicomView::setHighlight(bool yes)
{
QPalette p = palette();
if (yes) p.setColor(QPalette::Text, Qt::magenta);
else p.setColor(QPalette::Text, Qt::gray);
setPalette(p);
}
...
三、 DicomBrowse 类
class DicomBrowse : public QMainWindow
{
public slots:
...
void on_clickedView(SeriesBase::ViewType);// 在视图上点击鼠标(左右都可以)后执行
...
}
...
DicomBrowse::DicomBrowse(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
isOpeing = false;
Rad_G::m_mainWin = this;
connect(ui.graphicsView_XY, SIGNAL(windowChanged()), this, SLOT(on_windowChanged()));
ui.graphicsView_XY->setHighlight(true);// 本行及后六行新添加
connect(ui.graphicsView_XZ, SIGNAL(windowChanged()), this, SLOT(on_windowChanged()));
connect(ui.graphicsView_YZ, SIGNAL(windowChanged()), this, SLOT(on_windowChanged()));
connect(ui.graphicsView_XY, SIGNAL(clicked(SeriesBase::ViewType)), this, SLOT(on_clickedView(SeriesBase::ViewType)));
connect(ui.graphicsView_XZ, SIGNAL(clicked(SeriesBase::ViewType)), this, SLOT(on_clickedView(SeriesBase::ViewType)));
connect(ui.graphicsView_YZ, SIGNAL(clicked(SeriesBase::ViewType)), this, SLOT(on_clickedView(SeriesBase::ViewType)));
xyS = new XYSeries();
xzS = new XZSeries();
yzS = new YZSeries();
}
...
void DicomBrowse::on_comboBox_which_currentIndexChanged(QString seriesUID)
{
...
ui.graphicsView_YZ->setSeries(yzS); // 该函数的最后添加这两行
ui.graphicsView_XZ->setSeries(xzS);
}
void DicomBrowse::on_comboBox_currentIndexChanged(int color)
{
...
ui.graphicsView_YZ->updateView();// 在有updateView 的地方都加上XZ 和 YZ
ui.graphicsView_XZ->updateView();
}
void DicomBrowse::on_lineEdit_ww_textEdited(QString ww)
{
...
ui.graphicsView_YZ->updateView();
ui.graphicsView_XZ->updateView();
}
void DicomBrowse::on_lineEdit_wl_textEdited(QString wl)
{
...
ui.graphicsView_YZ->updateView();
ui.graphicsView_XZ->updateView();
}
...
void DicomBrowse::on_windowChanged()
{
...
ui.graphicsView_XY->updateView();
ui.graphicsView_YZ->updateView();
ui.graphicsView_XZ->updateView();
}
void DicomBrowse::on_clickedView(SeriesBase::ViewType vt)
{
switch (vt)
{
case SeriesBase::XY:
ui.graphicsView_XY->setHighlight(true);
ui.graphicsView_XZ->setHighlight(false);
ui.graphicsView_YZ->setHighlight(false);
break;
case SeriesBase::XZ:
ui.graphicsView_XY->setHighlight(false);
ui.graphicsView_XZ->setHighlight(true);
ui.graphicsView_YZ->setHighlight(false);
break;
case SeriesBase::YZ:
ui.graphicsView_XY->setHighlight(false);
ui.graphicsView_XZ->setHighlight(false);
ui.graphicsView_YZ->setHighlight(true);
break;
default:
break;
}
}
...