CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkMatrixWidget.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkMatrixWidget_h
22 #define __ctkMatrixWidget_h
23 
25 #include <QVector>
26 #include <QWidget>
27 
29 #include "ctkDoubleSpinBox.h"
30 #include "ctkPimpl.h"
31 #include "ctkWidgetsExport.h"
32 
33 class ctkMatrixWidgetPrivate;
34 
38 class CTK_WIDGETS_EXPORT ctkMatrixWidget: public QWidget
39 {
40  Q_OBJECT
41  Q_PROPERTY(int columnCount READ columnCount WRITE setColumnCount)
42  Q_PROPERTY(int rowCount READ rowCount WRITE setRowCount)
43  Q_PROPERTY(bool editable READ isEditable WRITE setEditable)
44  Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
45  Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
49  Q_PROPERTY(int decimals READ decimals WRITE setDecimals NOTIFY decimalsChanged)
52  Q_PROPERTY(ctkDoubleSpinBox::DecimalsOptions decimalsOption READ decimalsOption WRITE setDecimalsOption)
53  Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
54  Q_PROPERTY(QVector<double> values READ values WRITE setValues)
55 
56 public:
58  typedef QWidget Superclass;
59 
61  explicit ctkMatrixWidget(QWidget* parent = 0);
63  explicit ctkMatrixWidget(int rows, int columns, QWidget* parent = 0);
64  virtual ~ctkMatrixWidget();
65 
68  int columnCount()const;
69  virtual void setColumnCount(int newColumnCount);
70 
73  int rowCount()const;
74  virtual void setRowCount(int newRowCount);
75 
83  Q_INVOKABLE double value(int i, int j)const;
84  Q_INVOKABLE void setValue(int i, int j, double value);
85 
89  QVector<double> values()const;
90  void setValues(const QVector<double> & vector);
91 
95  bool isEditable()const;
96  void setEditable(bool newEditable);
97 
103  double minimum()const;
104  void setMinimum(double newMinimum);
105 
111  double maximum()const;
112  void setMaximum(double newMaximum);
113 
116  void setRange(double newMinimum, double newMaximum);
117 
123  double singleStep()const;
124  void setSingleStep(double step);
125 
131  int decimals()const;
132 
135  ctkDoubleSpinBox::DecimalsOptions decimalsOption()const;
138  void setDecimalsOption(ctkDoubleSpinBox::DecimalsOptions option);
139 
142  virtual QSize minimumSizeHint () const;
143  virtual QSize sizeHint () const;
144 
145 public Q_SLOTS:
146 
149  void identity();
150 
154  void setDecimals(int decimals);
155 
156 Q_SIGNALS:
161  void decimalsChanged(int);
162 
163 protected:
164  virtual void resizeEvent(QResizeEvent* event);
165 
168  ctkMatrixWidget(ctkMatrixWidgetPrivate& pvt, QWidget* parent=0);
169 private:
170  QScopedPointer<ctkMatrixWidgetPrivate> d_ptr;
171  Q_DECLARE_PRIVATE(ctkMatrixWidget);
172  Q_DISABLE_COPY(ctkMatrixWidget);
173 };
174 
175 #endif
int rowCount() const
Q_INVOKABLE void setValue(int i, int j, double value)
ctkMatrixWidget(int rows, int columns, QWidget *parent=0)
Constructor, builds a custom rowsXcolumns matrix.
double maximum() const
ctkDoubleSpinBox::DecimalsOptions decimalsOption() const
QVector< double > values() const
void setMaximum(double newMaximum)
double minimum() const
void identity()
Reset the matrix to identity.
virtual QSize sizeHint() const
double singleStep() const
ctkMatrixWidget(ctkMatrixWidgetPrivate &pvt, QWidget *parent=0)
protected constructor to derive private implementations
virtual QSize minimumSizeHint() const
Reimplemented from QAbstractScrollArea.
ctkMatrixWidget(QWidget *parent=0)
Constructor, builds a 4x4 identity matrix.
virtual ~ctkMatrixWidget()
void setEditable(bool newEditable)
Q_INVOKABLE double value(int i, int j) const
void decimalsChanged(int)
void matrixChanged()
void setDecimals(int decimals)
void setSingleStep(double step)
virtual void setRowCount(int newRowCount)
void setDecimalsOption(ctkDoubleSpinBox::DecimalsOptions option)
void setValues(const QVector< double > &vector)
void setRange(double newMinimum, double newMaximum)
QWidget Superclass
Superclass typedef.
int decimals() const
bool isEditable() const
virtual void setColumnCount(int newColumnCount)
virtual void resizeEvent(QResizeEvent *event)
void setMinimum(double newMinimum)
int columnCount() const