-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinputjoint.cpp
More file actions
111 lines (87 loc) · 2.62 KB
/
Copy pathinputjoint.cpp
File metadata and controls
111 lines (87 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "inputjoint.h"
//#include <QtGui>
#include <QHBoxLayout>
#include <QLabel>
#include <QDebug>
InputJoint::InputJoint(QString arg_name, double min, double max, QWidget *parent) :
QWidget(parent)
{
slider = new QSlider();
slider->setOrientation(Qt::Horizontal);
// spinbox = new QDoubleSpinBox();
spinbox = new QDoubleSpinBox();
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addWidget(new QLabel(arg_name));
hLayout->addWidget(slider);
hLayout->addWidget(spinbox);
// int margin[4];
// hLayout->getContentsMargins(&margin[0], &margin[1], &margin[2], &margin[3]);
// qDebug() << "hoge";
// for(int i=0; i<4; i++){
// qDebug() << margin[i];
// }
hLayout->setContentsMargins(0, 1, 0, 1);
this->setLayout(hLayout);
this->setMaximum(max);
this->setMinimum(min);
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
connect(spinbox, SIGNAL(valueChanged(double)), this, SLOT(setValue(double)));
}
void InputJoint::setMaximum(double value){
slider->setMaximum((int)value);
spinbox->setMaximum(value);
}
void InputJoint::setMaximum(int value){
slider->setMaximum(value);
spinbox->setMaximum((double)value);
}
void InputJoint::setMinimum(double value){
slider->setMinimum((int)value);
spinbox->setMinimum(value);
}
void InputJoint::setMinimum(int value){
slider->setMinimum(value);
spinbox->setMinimum((double)value);
}
void InputJoint::setValue(double value){
if(value > spinbox->maximum() || value < spinbox->minimum()){
return;
}
if(slider->value() == (int)value && spinbox->value() == value){
return;
}
slider->setValue((int)value);
if(spinbox->value() != value){
spinbox->setValue(value);
}
emit valueChanged(spinbox->value());
}
void InputJoint::setValue(int value){
if(value > (int)(spinbox->maximum()) || value < (int)(spinbox->minimum())){
return;
}
if(slider->value() == value && spinbox->value() == (double)value){
return;
}
slider->setValue(value);
if(spinbox->value() != (double)value){
spinbox->setValue((double)value);
}
emit valueChanged(spinbox->value());
}
double InputJoint::getValue(){
return spinbox->value();
}
void InputJoint::setValueNoSignal(double value){
if(value > spinbox->maximum() || value < spinbox->minimum()){
return;
}
if(slider->value() == (int)value && spinbox->value() == value){
return;
}
slider->setValue((int)value);
if(spinbox->value() != value){
spinbox->setValue(value);
}
// emit valueChanged(spinbox->value());
}