From d19d064c1875f4f6a0b931fac3fd6d6efa624cb8 Mon Sep 17 00:00:00 2001 From: kradchen Date: Mon, 12 May 2025 10:07:36 +0800 Subject: [PATCH] fix: fix a screen blurred bug after main window resize --- .../UI/Widget/ImageView/dicomimageview.cpp | 25 +++++++++++++++++-- src/src/UI/Widget/ImageView/dicomimageview.h | 4 +++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/src/UI/Widget/ImageView/dicomimageview.cpp b/src/src/UI/Widget/ImageView/dicomimageview.cpp index 8b19c8a..fb532a7 100644 --- a/src/src/UI/Widget/ImageView/dicomimageview.cpp +++ b/src/src/UI/Widget/ImageView/dicomimageview.cpp @@ -107,6 +107,19 @@ void DicomImageView::initImageViewer() { } } +void DicomImageView::initImageViewerFirstTime() +{ + if (!mImageViewer) { + mImageViewer = DICOMImageViewer::New(); + mImageViewer->SetViewID(this->mViewID); + mImageViewer->SetRenderWindow(mGLRenWin); + mImageViewer->SetupInteractor(mGLRenWin->GetInteractor()); + mGLRenWin->GetInteractor()->RemoveAllObservers(); + mImageViewer->Delete(); + mImageViewer = nullptr; + } +} + void DicomImageView::setHighlight(bool yes) { mTitleBar->SetHighlight(yes); } @@ -282,8 +295,16 @@ void DicomImageView::mousePressEvent(QMouseEvent *event) { } void DicomImageView::resizeEvent(QResizeEvent *event) { + //auto size conner info - if (!mImageViewer) return; + if (!mImageViewer) { + QWidget::resizeEvent(event); + if(mfirstShowFlag){ + initImageViewerFirstTime(); + mfirstShowFlag= false; + } + return; + } // force update ReferenceLine data mImageViewer->modifiedReferenceLine(); @@ -295,7 +316,7 @@ void DicomImageView::resizeEvent(QResizeEvent *event) { VCRHelper::getVCRYOffset(); mVcrToolbar->move(ax, ay); } - + QWidget::resizeEvent(event); } // DND support----------------------------------------------------------------- diff --git a/src/src/UI/Widget/ImageView/dicomimageview.h b/src/src/UI/Widget/ImageView/dicomimageview.h index 05bf7ee..de4669a 100644 --- a/src/src/UI/Widget/ImageView/dicomimageview.h +++ b/src/src/UI/Widget/ImageView/dicomimageview.h @@ -344,9 +344,13 @@ private: bool mIsOverlay; bool mIsSlotInited; bool mIsFirstRenderAfterLoad; + bool mfirstShowFlag = true; + uint mViewID; void initImageViewer(); + void initImageViewerFirstTime(); + }; #endif \ No newline at end of file