diff --git a/src/src/UI/Widget/dicomimageview.cpp b/src/src/UI/Widget/dicomimageview.cpp index 4c04d8a..d32e05b 100644 --- a/src/src/UI/Widget/dicomimageview.cpp +++ b/src/src/UI/Widget/dicomimageview.cpp @@ -94,7 +94,6 @@ void DicomImageView::initScrollbar() { if (!mIsSlotInited) { connect(mScrollBar, &QScrollBar::valueChanged, this, &DicomImageView::scrollBarValueChanged); connect(this, &DicomImageView::onTransform, this, &DicomImageView::imageTransformed); - mIsSlotInited = true; } } @@ -146,16 +145,19 @@ void DicomImageView::loadSeries(SeriesImageSet *series) { mImageViewer->UpdateOrientationInfo(); //以下是一些转接函数 //使用connect 替代 AddObserver,避免出现多种事件机制架构 - connect(mImageViewer->GetSignalRaiser(), &vtkSignalRaiser::raiseEvent, this, &DicomImageView::syncEventFunc); - //目前 替换了一部分包括SlicedEvent,EndDollyEvent,EndWindowLevelEvent,EndPanEvent,主要关联到sync + if (!mIsSlotInited) { + connect(mImageViewer->GetSignalRaiser(), &vtkSignalRaiser::raiseEvent, this, &DicomImageView::dispatchEvent); + //目前 替换了一部分包括SlicedEvent,EndDollyEvent,EndWindowLevelEvent,EndPanEvent,主要关联到sync - ActorDraggableInteractorStyle *style = mImageViewer->GetInteractorStyle(); - style->AddObserver(ActorDraggableInteractorStyle::AfterViewerClicked, this, &DicomImageView::clicked); - style->AddObserver(vtkCommand::EventIds::WindowLevelEvent, this, &DicomImageView::updateWindowLevelCb); - style->AddObserver(ActorDraggableInteractorStyle::DoubleClickEvent, this, &DicomImageView::doubleclickedEventCb); - style->AddObserver(ActorDraggableInteractorStyle::ScalarOpacityEvent, this, &DicomImageView::scalarEventCb); - style->AddObserver(ActorDraggableInteractorStyle::ScalarShiftEvent, this, &DicomImageView::scalarEventCb); + ActorDraggableInteractorStyle *style = mImageViewer->GetInteractorStyle(); + style->AddObserver(ActorDraggableInteractorStyle::AfterViewerClicked, this, &DicomImageView::clicked); + style->AddObserver(vtkCommand::EventIds::WindowLevelEvent, this, &DicomImageView::windowLevelHandle); + style->AddObserver(ActorDraggableInteractorStyle::DoubleClickEvent, this, &DicomImageView::doubleClickHandle); + style->AddObserver(ActorDraggableInteractorStyle::ScalarOpacityEvent, this, &DicomImageView::scalarEventHandle); + style->AddObserver(ActorDraggableInteractorStyle::ScalarShiftEvent, this, &DicomImageView::scalarEventHandle); + } initScrollbar(); + mIsSlotInited = true; } int DicomImageView::getSeriesNumber() {