Add ResliceMPRToolBar
This commit is contained in:
@@ -14,6 +14,9 @@
|
|||||||
#define VTKIS_IMAGE_PAN 5
|
#define VTKIS_IMAGE_PAN 5
|
||||||
#define VTKIS_IMAGE_ZOOM 6
|
#define VTKIS_IMAGE_ZOOM 6
|
||||||
#define VTKIS_IMAGE_WINDOWLEVEL 7
|
#define VTKIS_IMAGE_WINDOWLEVEL 7
|
||||||
|
#define VTKIS_IMAGE_SLICE 8
|
||||||
|
#define VTKIS_IMAGE_ROTATE3D VTKIS_ROTATE
|
||||||
|
#define VTKIS_IMAGE_ROTATE2D VTKIS_SPIN
|
||||||
#define VTKIS_VOLUME_ROTATE3D VTKIS_ROTATE
|
#define VTKIS_VOLUME_ROTATE3D VTKIS_ROTATE
|
||||||
#define VTKIS_VOLUME_ROTATE2D VTKIS_SPIN
|
#define VTKIS_VOLUME_ROTATE2D VTKIS_SPIN
|
||||||
#define VTKIS_VOLUME_ZOOM VTKIS_ZOOM
|
#define VTKIS_VOLUME_ZOOM VTKIS_ZOOM
|
||||||
|
|||||||
103
src/src/UI/Widget/ToolBar/ResliceMPRToolBar.cpp
Normal file
103
src/src/UI/Widget/ToolBar/ResliceMPRToolBar.cpp
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
//
|
||||||
|
// Created by Krad on 2022/12/8.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "ResliceMPRToolBar.h"
|
||||||
|
|
||||||
|
#include <QToolButton>
|
||||||
|
#include <QButtonGroup>
|
||||||
|
#include <QActionGroup>
|
||||||
|
#include <QMenu>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
#include "Rendering/Core/RenderingDefines.h"
|
||||||
|
|
||||||
|
ResliceMPRToolBar::ResliceMPRToolBar(QWidget *parent) : QToolBar(parent) {
|
||||||
|
auto btnReset = new QToolButton(this);
|
||||||
|
addButton(btnReset, "reset");
|
||||||
|
connect(btnReset,&QToolButton::clicked,[=](){
|
||||||
|
emit resetView();
|
||||||
|
});
|
||||||
|
|
||||||
|
auto mBtnAnonymize = new QToolButton(this);
|
||||||
|
addButton(mBtnAnonymize, "anonymize");
|
||||||
|
addSeparator();
|
||||||
|
auto group = new QButtonGroup(this);
|
||||||
|
|
||||||
|
|
||||||
|
auto btnFreeRotate = new QToolButton(this);
|
||||||
|
addButton(btnFreeRotate, "freeRotate");
|
||||||
|
btnFreeRotate->setCheckable(true);
|
||||||
|
btnFreeRotate->setChecked(true);
|
||||||
|
btnFreeRotate->setPopupMode(QToolButton::MenuButtonPopup);
|
||||||
|
btnFreeRotate->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
|
btnFreeRotate->setToolTip(tr("3D Rotate"));
|
||||||
|
|
||||||
|
auto btnRotate = new QToolButton(this);
|
||||||
|
addButton(btnRotate, "planeRotate");
|
||||||
|
btnRotate->setCheckable(true);
|
||||||
|
auto btnSlice = new QToolButton(this);
|
||||||
|
addButton(btnSlice, "slice");
|
||||||
|
btnSlice->setCheckable(true);
|
||||||
|
auto btnPan = new QToolButton(this);
|
||||||
|
addButton(btnPan, "pan");
|
||||||
|
btnPan->setCheckable(true);
|
||||||
|
auto btnZoom = new QToolButton(this);
|
||||||
|
addButton(btnZoom, "zoom");
|
||||||
|
auto menu = new QMenu(this);
|
||||||
|
btnZoom->setMenu(menu);
|
||||||
|
btnZoom->setPopupMode(QToolButton::MenuButtonPopup);
|
||||||
|
btnZoom->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||||
|
btnZoom->setToolTip(tr("Zoom"));
|
||||||
|
menu->addAction(tr("Fit window"),[=](){
|
||||||
|
emit fitWindow();
|
||||||
|
});
|
||||||
|
|
||||||
|
btnZoom->setCheckable(true);
|
||||||
|
auto btnWindow = new QToolButton(this);
|
||||||
|
addButton(btnWindow, "window");
|
||||||
|
btnWindow->setCheckable(true);
|
||||||
|
|
||||||
|
group->addButton(btnFreeRotate,VTKIS_IMAGE_ROTATE3D);
|
||||||
|
group->addButton(btnRotate,VTKIS_IMAGE_ROTATE2D);
|
||||||
|
group->addButton(btnSlice,VTKIS_IMAGE_SLICE);
|
||||||
|
group->addButton(btnZoom,VTKIS_IMAGE_ZOOM);
|
||||||
|
group->addButton(btnPan,VTKIS_IMAGE_PAN);
|
||||||
|
group->addButton(btnWindow,VTKIS_IMAGE_WINDOWLEVEL);
|
||||||
|
group->setExclusive(true);
|
||||||
|
|
||||||
|
connect(group, static_cast<void(QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked),this,&ResliceMPRToolBar::modeButtonClicked);
|
||||||
|
|
||||||
|
|
||||||
|
addSeparator();
|
||||||
|
auto btnSetting = new QToolButton(this);
|
||||||
|
addButton(btnSetting, "setting");
|
||||||
|
|
||||||
|
|
||||||
|
QWidget *spacer = new QWidget(this);
|
||||||
|
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||||
|
addWidget(spacer);
|
||||||
|
|
||||||
|
auto mBtnMinimize = new QToolButton(this);
|
||||||
|
auto mBtnMaximize = new QToolButton(this);
|
||||||
|
auto mBtnClose = new QToolButton(this);
|
||||||
|
auto mBtnFullScreen = new QToolButton(this);
|
||||||
|
auto mActionMinimize = addButton(mBtnMinimize, "minimize");
|
||||||
|
auto mActionMaximize = addButton(mBtnMaximize, "maximize");
|
||||||
|
auto mActionClose = addButton(mBtnClose, "close");
|
||||||
|
auto mActionFullScreen = addButton(mBtnFullScreen, "fullscreen");
|
||||||
|
|
||||||
|
mActionMinimize->setVisible(false);
|
||||||
|
mActionMaximize->setVisible(false);
|
||||||
|
mActionClose->setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
ResliceMPRToolBar::~ResliceMPRToolBar() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QAction *ResliceMPRToolBar::addButton(QToolButton *button, const char *objectName) {
|
||||||
|
button->setObjectName(objectName);
|
||||||
|
button->setToolButtonStyle(Qt::ToolButtonIconOnly);
|
||||||
|
return addWidget(button);
|
||||||
|
}
|
||||||
28
src/src/UI/Widget/ToolBar/ResliceMPRToolBar.h
Normal file
28
src/src/UI/Widget/ToolBar/ResliceMPRToolBar.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Created by Krad on 2022/12/8.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef OMEGAV_RESLICEMPRTOOLBAR_H
|
||||||
|
#define OMEGAV_RESLICEMPRTOOLBAR_H
|
||||||
|
|
||||||
|
#include <QToolBar>
|
||||||
|
|
||||||
|
class QAction;
|
||||||
|
|
||||||
|
class ResliceMPRToolBar : public QToolBar {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit ResliceMPRToolBar(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
~ResliceMPRToolBar() override;
|
||||||
|
signals:
|
||||||
|
void modeButtonClicked(int id);
|
||||||
|
void resetView();
|
||||||
|
void fitWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QAction* addButton(QToolButton* button, const char* objectName);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //OMEGAV_RESLICEMPRTOOLBAR_H
|
||||||
Reference in New Issue
Block a user