
本文将主要介紹醫學四視圖的基本布局。包括軸、矢、冠和3D顯示視窗以及一個窗寬窗位調節視窗。
電梯
1 布局
2 代碼
2.1 imagemanage.h
2.2 imagemanage.cpp
☞ 源碼
本子產品是還是在ThirdVtk基礎上添加一個子產品,下圖所示:
#ifndef IMAGEMANAGE_H
#define IMAGEMANAGE_H
#include <QWidget>
#include <QSplitter>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QTextEdit>
#include <QResizeEvent>
#include "QVTKOpenGLWidget.h" //新版本,舊版QVTKWidget
#include "vtkAutoInit.h"
namespace Ui {
class ImageManage;
}
class ImageManage : public QWidget
{
Q_OBJECT
public:
explicit ImageManage(QWidget *parent = nullptr);
~ImageManage();
void setCurrentTab(int temp =0);
protected:
void resizeEvent(QResizeEvent *event) override;
private:
Ui::ImageManage *ui;
QSplitter *mSplitterMain = nullptr;
QSplitter *mSplitterVertical = nullptr;
QSplitter *mSplitterUp = nullptr;
QSplitter *mSplitterDown = nullptr;
};
#endif // IMAGEMANAGE_H
#include "imagemanage.h"
#include "ui_imagemanage.h"
#include <QtDebug>
ImageManage::ImageManage(QWidget *parent) :
QWidget(parent),
ui(new Ui::ImageManage)
{
ui->setupUi(this);
mSplitterMain = new QSplitter(Qt::Horizontal,this);
mSplitterVertical = new QSplitter(Qt::Vertical,mSplitterMain);
mSplitterUp = new QSplitter(Qt::Horizontal,mSplitterVertical);
mSplitterUp->addWidget(ui->widget_1);
mSplitterUp->addWidget(ui->widget_2);
mSplitterUp->setStretchFactor(0,1);
mSplitterUp->setStretchFactor(1,1);
mSplitterDown = new QSplitter(Qt::Horizontal,mSplitterVertical);
mSplitterDown->addWidget(ui->widget_3);
mSplitterDown->addWidget(ui->widget_4);
mSplitterDown->setStretchFactor(0,1);
mSplitterDown->setStretchFactor(1,1);
mSplitterMain->insertWidget(0,mSplitterVertical);
mSplitterMain->insertWidget(1,ui->widget_5);
mSplitterMain->setStretchFactor(0,1); //很魔性啊
}
ImageManage::~ImageManage()
{
delete ui;
}
void ImageManage::setCurrentTab(int temp)
{
}
void ImageManage::resizeEvent(QResizeEvent *event)
{
Q_UNUSED(event);
mSplitterMain->resize(this->size());
}