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
ctkDoubleSpinBox.h
ctkMatrixWidget::rowCount
int rowCount() const
ctkMatrixWidget::setEditable
void setEditable(bool newEditable)
ctkMatrixWidget::isEditable
bool isEditable() const
ctkMatrixWidget::values
QVector< double > values() const
ctkMatrixWidget::setColumnCount
virtual void setColumnCount(int newColumnCount)
ctkMatrixWidget::setDecimals
void setDecimals(int decimals)
ctkMatrixWidget::singleStep
double singleStep() const
ctkMatrixWidget::minimumSizeHint
virtual QSize minimumSizeHint() const
Reimplemented from QAbstractScrollArea.
ctkMatrixWidget::Superclass
QWidget Superclass
Superclass typedef.
Definition: ctkMatrixWidget.h:58
ctkMatrixWidget::decimals
int decimals() const
ctkMatrixWidget::value
Q_INVOKABLE double value(int i, int j) const
ctkMatrixWidget::columnCount
int columnCount() const
ctkMatrixWidget::minimum
double minimum() const
ctkMatrixWidget::matrixChanged
void matrixChanged()
ctkMatrixWidget::setValue
Q_INVOKABLE void setValue(int i, int j, double value)
ctkMatrixWidget::decimalsChanged
void decimalsChanged(int)
ctkMatrixWidget::ctkMatrixWidget
ctkMatrixWidget(ctkMatrixWidgetPrivate &pvt, QWidget *parent=0)
protected constructor to derive private implementations
ctkMatrixWidget::identity
void identity()
Reset the matrix to identity.
ctkMatrixWidget::decimalsOption
ctkDoubleSpinBox::DecimalsOptions decimalsOption() const
ctkMatrixWidget::resizeEvent
virtual void resizeEvent(QResizeEvent *event)
ctkMatrixWidget::ctkMatrixWidget
ctkMatrixWidget(QWidget *parent=0)
Constructor, builds a 4x4 identity matrix.
ctkMatrixWidget::setSingleStep
void setSingleStep(double step)
ctkMatrixWidget::sizeHint
virtual QSize sizeHint() const
ctkMatrixWidget::~ctkMatrixWidget
virtual ~ctkMatrixWidget()
ctkMatrixWidget::setMinimum
void setMinimum(double newMinimum)
ctkMatrixWidget
Definition: ctkMatrixWidget.h:39
ctkMatrixWidget::setRowCount
virtual void setRowCount(int newRowCount)
ctkPimpl.h
ctkMatrixWidget::setValues
void setValues(const QVector< double > &vector)
ctkMatrixWidget::maximum
double maximum() const
ctkMatrixWidget::setMaximum
void setMaximum(double newMaximum)
ctkMatrixWidget::ctkMatrixWidget
ctkMatrixWidget(int rows, int columns, QWidget *parent=0)
Constructor, builds a custom rowsXcolumns matrix.
ctkMatrixWidget::setRange
void setRange(double newMinimum, double newMaximum)
ctkMatrixWidget::setDecimalsOption
void setDecimalsOption(ctkDoubleSpinBox::DecimalsOptions option)