Fix Slot double init bug.

This commit is contained in:
Krad
2022-07-25 16:03:31 +08:00
parent a662a62f5e
commit d7ce117e85

View File

@@ -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);
//目前 替换了一部分包括SlicedEventEndDollyEventEndWindowLevelEventEndPanEvent主要关联到sync
if (!mIsSlotInited) {
connect(mImageViewer->GetSignalRaiser(), &vtkSignalRaiser::raiseEvent, this, &DicomImageView::dispatchEvent);
//目前 替换了一部分包括SlicedEventEndDollyEventEndWindowLevelEventEndPanEvent主要关联到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() {