Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qMRMLCoordinatesWidget.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Johan Andruejol, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __qMRMLCoordinatesWidget_h
22#define __qMRMLCoordinatesWidget_h
23
24// Qt includes
25class QWidget;
26
27// CTK includes
28#include <ctkCoordinatesWidget.h>
29#include <ctkVTKObject.h>
30
31// qMRML includes
32#include "qMRMLWidgetsExport.h"
33
34// VTK includes
35class vtkMRMLNode;
36class vtkMRMLScene;
37
38// qMRMLSpinBox includes
39class qMRMLCoordinatesWidgetPrivate;
40
53//
58class QMRML_WIDGETS_EXPORT qMRMLCoordinatesWidget : public ctkCoordinatesWidget
59{
60 Q_OBJECT
61 QVTK_OBJECT
62
66 // \sa setQuantity(), quantity()
67 Q_PROPERTY(QString quantity READ quantity WRITE setQuantity NOTIFY quantityChanged)
68
69
74 // \sa setUnitAwareProperties(), unitAwareProperties()
75 Q_FLAGS(UnitAwareProperty UnitAwareProperties)
76 Q_PROPERTY(UnitAwareProperties unitAwareProperties READ unitAwareProperties WRITE setUnitAwareProperties)
77
78public:
79 typedef ctkCoordinatesWidget Superclass;
80
82 explicit qMRMLCoordinatesWidget(QWidget* parent = nullptr);
84
96 Q_DECLARE_FLAGS(UnitAwareProperties, UnitAwareProperty)
97
98
100 Q_INVOKABLE vtkMRMLScene* mrmlScene() const;
101
102 QString quantity() const;
103
104 UnitAwareProperties unitAwareProperties()const;
105
106public slots:
107 void setQuantity(const QString& baseName);
108
111 virtual void setMRMLScene(vtkMRMLScene* scene);
112
113 void setUnitAwareProperties(UnitAwareProperties flags);
114
115signals:
117 void quantityChanged(const QString&);
118
119protected slots:
121
122protected:
123 QScopedPointer<qMRMLCoordinatesWidgetPrivate> d_ptr;
124
125private:
126 Q_DECLARE_PRIVATE(qMRMLCoordinatesWidget);
127 Q_DISABLE_COPY(qMRMLCoordinatesWidget);
128};
129
130Q_DECLARE_OPERATORS_FOR_FLAGS(qMRMLCoordinatesWidget::UnitAwareProperties)
131
132#endif
void quantityChanged(const QString &)
ctkCoordinatesWidget Superclass
virtual void setMRMLScene(vtkMRMLScene *scene)
QScopedPointer< qMRMLCoordinatesWidgetPrivate > d_ptr
void setUnitAwareProperties(UnitAwareProperties flags)
void mrmlSceneChanged(vtkMRMLScene *)
qMRMLCoordinatesWidget(QWidget *parent=nullptr)
Construct an empty qMRMLSliderWidget with a null scene.
UnitAwareProperties unitAwareProperties
Q_INVOKABLE vtkMRMLScene * mrmlScene() const
void setQuantity(const QString &baseName)
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.