-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrobotpropswidget.cpp
65 lines (56 loc) · 1.58 KB
/
robotpropswidget.cpp
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
#include "robotpropswidget.h"
#include "ui_robotpropswidget.h"
#include <QDebug>
#include "robotgraphicsitem.h"
RobotPropsWidget::RobotPropsWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::RobotPropsWidget)
, m_item(new RobotGraphicsItem(this))
{
ui->setupUi(this);
hide();
}
RobotPropsWidget::~RobotPropsWidget()
{
delete ui;
delete m_item;
}
// From View to Widget
void RobotPropsWidget::robotMoved(qreal x, qreal y, qreal /*a*/)
{
blockSignals(true);
ui->lineEditPosX->setText(QString::number(x));
ui->lineEditPosY->setText(QString::number(y));
blockSignals(false);
}
// From Widget to View
void RobotPropsWidget::on_lineEditPosX_returnPressed()
{
blockSignals(true);
qreal value = ui->lineEditPosX->text().toDouble();
m_item->setPos(QPointF(value, ui->lineEditPosY->text().toDouble()));
blockSignals(false);
}
void RobotPropsWidget::on_lineEditPosY_returnPressed()
{
blockSignals(true);
qreal value = ui->lineEditPosY->text().toDouble();
m_item->setPos(QPointF(ui->lineEditPosX->text().toDouble(), value));
blockSignals(false);
}
void RobotPropsWidget::on_lineEditAngle_returnPressed()
{
blockSignals(true);
qreal angle = ui->lineEditAngle->text().toInt();
ui->horizontalSliderAngle->setValue(angle);
m_item->setRotation(angle);
blockSignals(false);
}
void RobotPropsWidget::on_horizontalSliderAngle_valueChanged(int angle)
{
// qDebug() << __func__ << angle;
blockSignals(true);
ui->lineEditAngle->setText(QString::number(angle));
m_item->setRotation(90-angle);
blockSignals(false);
}