Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkRenderWindowUtilityWidget.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef QmitkRenderWindowUtilityWidget_h
14 #define QmitkRenderWindowUtilityWidget_h
15 
16 #include <MitkQtWidgetsExports.h>
17 
18 // qt widgets module
21 #include <QmitkStepperAdapter.h>
24 
25 // qt
26 #include <QWidget>
27 #include <QHBoxLayout>
28 #include <QMenuBar>
29 #include <QComboBox>
30 
31 namespace mitk
32 {
33  class DataStorage;
34 }
35 
36 class QmitkRenderWindow;
37 class QToolButton;
38 
49 {
50  Q_OBJECT
51 
52 public:
53 
55  QWidget* parent = nullptr,
56  QmitkRenderWindow* renderWindow = nullptr,
57  mitk::DataStorage* dataStorage = nullptr
58  );
59 
61 
62  using GroupSyncIndexType = int;
63 
76  void SetSyncGroup(const GroupSyncIndexType index);
77 
89 
90  void SetGeometry(const itk::EventObject& event);
92 
93 public Q_SLOTS:
96 
97 Q_SIGNALS:
98 
106  void SetDataSelection(const QList<mitk::DataNode::Pointer>& newSelection);
107 
108 private Q_SLOTS:
109 
110  void OnSyncGroupSelectionChanged(int index);
111  void OnNodeSelectionWidgetSyncGroupChanged(int index);
112 
113 private:
114 
115  mitk::BaseRenderer* m_BaseRenderer;
116  QmitkSynchronizedNodeSelectionWidget* m_NodeSelectionWidget;
117  QComboBox* m_SyncGroupSelector;
118  QToolButton* m_NewSyncGroupButton;
119  QmitkSliceNavigationWidget* m_SliceNavigationWidget;
120  QmitkStepperAdapter* m_StepperAdapter;
121  std::unique_ptr<mitk::RenderWindowLayerController> m_RenderWindowLayerController;
122  std::unique_ptr<mitk::RenderWindowViewDirectionController> m_RenderWindowViewDirectionController;
123  QComboBox* m_ViewDirectionSelector;
124 
125  void ChangeViewDirection(const QString& viewDirection);
126 
127 };
128 
129 #endif
#define MITKQTWIDGETS_EXPORT
Utility widget that extends a QmitkRenderWindowWidget with window-specific controls.
void CreateNewSyncGroupRequested(QmitkSynchronizedNodeSelectionWidget *synchronizedWidget)
Emitted when the user requests a new synchronization group via the '+' button. The owning multi widge...
void SyncGroupChanged(QmitkSynchronizedNodeSelectionWidget *synchronizedWidget, GroupSyncIndexType index)
GroupSyncIndexType GetSyncGroup() const
Returns the currently selected group index, or '-1' when the combobox holds no selection.
void SetSyncGroup(const GroupSyncIndexType index)
Select the combobox row for the given synchronization group index.
QmitkRenderWindowUtilityWidget(QWidget *parent=nullptr, QmitkRenderWindow *renderWindow=nullptr, mitk::DataStorage *dataStorage=nullptr)
void OnSyncGroupAdded(const GroupSyncIndexType index)
void SynchronizationToggled(QmitkSynchronizedNodeSelectionWidget *synchronizedWidget)
~QmitkRenderWindowUtilityWidget() override
QmitkSynchronizedNodeSelectionWidget * GetNodeSelectionWidget() const
void SetDataSelection(const QList< mitk::DataNode::Pointer > &newSelection)
void SetGeometry(const itk::EventObject &event)
MITK implementation of the QVTKWidget.
Helper class to connect Qt-based navigators to instances of Stepper.
Node selection widget with renderer-specific functionality and synchronization support.
Organizes the rendering process.
Abstract data management class that organizes DataNode objects in a directed acyclic graph.
Find image slices visible on a given plane.