From f4759147860ba73af19a1308c4ee5bc88a0fdd31 Mon Sep 17 00:00:00 2001 From: kradchen Date: Mon, 30 Jun 2025 13:20:32 +0800 Subject: [PATCH] feat: add about function & button to toolbar --- src/Combinear.css | 2 ++ src/Icon/about.png | Bin 0 -> 8923 bytes src/QDicomViewer.qrc | 1 + src/src/UI/Widget/ToolBar/DefaultToolBar.cpp | 21 +++++++++++++++++++ src/src/UI/Widget/ToolBar/DefaultToolBar.h | 2 ++ 5 files changed, 26 insertions(+) create mode 100644 src/Icon/about.png diff --git a/src/Combinear.css b/src/Combinear.css index 3af1c42..b46e6cd 100644 --- a/src/Combinear.css +++ b/src/Combinear.css @@ -98,6 +98,8 @@ QToolButton#cine{qproperty-icon:url(":/InfiniteViewer/Icon/cine.png")} QToolButton#fusion{qproperty-icon:url(":/InfiniteViewer/Icon/fusion.png")} QToolButton#MPR{qproperty-icon:url(":/InfiniteViewer/Icon/MPR.png")} QToolButton#VR{qproperty-icon:url(":/InfiniteViewer/Icon/VR.png")} +QToolButton#About{qproperty-icon:url(":/InfiniteViewer/Icon/about.png")} + QToolButton#reset{qproperty-icon:url(":/InfiniteViewer/Icon/Reset.png")} QToolButton#planeRotate{qproperty-icon:url(":/InfiniteViewer/Icon/rotate.png")} diff --git a/src/Icon/about.png b/src/Icon/about.png new file mode 100644 index 0000000000000000000000000000000000000000..4407533388961caeada9002c0209e5034efabd22 GIT binary patch literal 8923 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 F{~zt5FG>Ia literal 0 HcmV?d00001 diff --git a/src/QDicomViewer.qrc b/src/QDicomViewer.qrc index ab665d8..65a1a32 100644 --- a/src/QDicomViewer.qrc +++ b/src/QDicomViewer.qrc @@ -59,6 +59,7 @@ Icon/preset.png Icon/diameter.png Icon/crosshair.png + Icon/about.png Icon/pq/pqBold24.png diff --git a/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp b/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp index cf58bf0..03ca436 100644 --- a/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp +++ b/src/src/UI/Widget/ToolBar/DefaultToolBar.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Rendering/Measure/Measure.h" #include "UI/Widget/ImageView/DicomImageView.h" #include "UI/Manager/ImageViewManager.h" @@ -50,6 +51,7 @@ DefaultToolBar::DefaultToolBar(QWidget *parent) : QToolBar(parent) , mBtnFusion(new QToolButton(this)) , mBtnMPR(new QToolButton(this)) , mBtnVR(new QToolButton(this)) + , mBtnAbout(new QToolButton(this)) , mBtnMinimize(new QToolButton(this)) , mBtnMaximize(new QToolButton(this)) , mBtnClose(new QToolButton(this)) @@ -164,6 +166,9 @@ void DefaultToolBar::initToolBarButtons() { mBtnVR->setEnabled(false); actionVR->setVisible(false); + auto actionAbout = addButton(mBtnAbout, "About"); + mBtnAbout->setEnabled(true); + actionAbout->setVisible(true); QWidget *spacer = new QWidget(this); spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); @@ -189,6 +194,8 @@ void DefaultToolBar::initToolBarButtons() { initFusionButton(); initMPRButton(); initVRButton(); + initAboutButton(); + initCineButton(); initClearButton(); initScreenButtons(); @@ -617,3 +624,17 @@ void DefaultToolBar::initScreenButtons() { void DefaultToolBar::initVRButton() { connect(mBtnVR, &QToolButton::clicked, this, &DefaultToolBar::volumeRendering); } + +void DefaultToolBar::initAboutButton() +{ + connect(mBtnAbout, &QToolButton::clicked, [=](){ + QMessageBox::about(this,tr("About"),QString("%1(%2:%3)\n%4\n%5") + .arg("USCT Viewer") + .arg("Version") + .arg("1.0.0") + .arg(tr("Built with Qt 5.12.0 and VTK 9.2.")) + .arg(QString(tr("Copyright © %1 Zhejiang Equilibrium Nine Medical Equipment Co., Ltd. \nAll Rights Reserved")) + .arg(2025))); + }); + +} diff --git a/src/src/UI/Widget/ToolBar/DefaultToolBar.h b/src/src/UI/Widget/ToolBar/DefaultToolBar.h index 538bde0..8402f95 100644 --- a/src/src/UI/Widget/ToolBar/DefaultToolBar.h +++ b/src/src/UI/Widget/ToolBar/DefaultToolBar.h @@ -63,6 +63,7 @@ private: void initClearButton(); void initMPRButton(); void initVRButton(); + void initAboutButton(); void initTransformButton(); void initScreenButtons(); @@ -86,6 +87,7 @@ private: QToolButton *mBtnFusion; QToolButton *mBtnMPR; QToolButton *mBtnVR; + QToolButton *mBtnAbout; QToolButton *mBtnMinimize; QToolButton *mBtnMaximize; QToolButton *mBtnClose;