Add ResliceMPRToolBar
This commit is contained in:
@@ -14,6 +14,9 @@
|
||||
#define VTKIS_IMAGE_PAN 5
|
||||
#define VTKIS_IMAGE_ZOOM 6
|
||||
#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_ROTATE2D VTKIS_SPIN
|
||||
#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