CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
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
33class ctkMatrixWidgetPrivate;
34
38class 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
56public:
58 typedef QWidget Superclass;
59
61 explicit ctkMatrixWidget(QWidget* parent = 0);
63 explicit ctkMatrixWidget(int rows, int columns, QWidget* parent = 0);
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
145public Q_SLOTS:
146
149 void identity();
150
154 void setDecimals(int decimals);
155
156Q_SIGNALS:
162
163protected:
164 virtual void resizeEvent(QResizeEvent* event);
165
168 ctkMatrixWidget(ctkMatrixWidgetPrivate& pvt, QWidget* parent=0);
169private:
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
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
QVector< double > values() const
bool isEditable() const
virtual void setColumnCount(int newColumnCount)
virtual void resizeEvent(QResizeEvent *event)
void setMinimum(double newMinimum)
int columnCount() const