pull/27/head
commit
bbc82dcca2
@ -1,273 +0,0 @@
|
|||||||
#include "../ui/mainwindow.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MainWindow::MainWindow(int argc, char **argv, QWidget *parent) :
|
|
||||||
QMainWindow(parent), qnode(argc, argv),
|
|
||||||
ui(new Ui::MainWindow)
|
|
||||||
|
|
||||||
{
|
|
||||||
qnode.init();
|
|
||||||
ui->setupUi(this);
|
|
||||||
initUis();
|
|
||||||
connections();
|
|
||||||
}
|
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::initUis(){
|
|
||||||
setBtnStyles();
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* init
|
|
||||||
*/
|
|
||||||
|
|
||||||
rock_widget = new JoyStick(ui->JoyStick_widget);
|
|
||||||
rock_widget->show();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::setBtnStyles(){
|
|
||||||
/*
|
|
||||||
* set PushButton state
|
|
||||||
*/
|
|
||||||
|
|
||||||
ui->btn_main->setIcon(QIcon("://images/up.png"));
|
|
||||||
ui->btn_main->setText("mainWidget");
|
|
||||||
ui->btn_main->setStyleSheet(
|
|
||||||
"QPushButton:hover{"
|
|
||||||
"background-color:rgb(186, 189, 182);"
|
|
||||||
"border-bottom:2px solid rgb(67, 154, 246);}"
|
|
||||||
"QPushButton:checked{"
|
|
||||||
"background-color:cyan;"
|
|
||||||
"border-bottom:2px solid white}"
|
|
||||||
"QPushButton:pressed{"
|
|
||||||
"background-color:rgb(67, 154, 246)}"
|
|
||||||
"QPushButton{"
|
|
||||||
"background-color:rgb(238, 238, 236);"
|
|
||||||
"border:none;"
|
|
||||||
"padding:0px 0px 0px 0px;"
|
|
||||||
"margin:0px 0px 0px 0px;}");
|
|
||||||
|
|
||||||
ui->btn_uav->setStyleSheet(
|
|
||||||
"QPushButton:hover{"
|
|
||||||
"background-color:rgb(186, 189, 182);"
|
|
||||||
"border-bottom:2px solid rgb(67, 154, 246);}"
|
|
||||||
"QPushButton:checked{"
|
|
||||||
"background-color:cyan;"
|
|
||||||
"border-bottom:2px solid white}"
|
|
||||||
"QPushButton:pressed{"
|
|
||||||
"background-color:rgb(67, 154, 246)}"
|
|
||||||
"QPushButton{"
|
|
||||||
"background-color:rgb(238, 238, 236);"
|
|
||||||
"border:none;"
|
|
||||||
"padding:0px 0px 0px 0px;"
|
|
||||||
"margin:0px 0px 0px 0px;}");
|
|
||||||
|
|
||||||
ui->btn_ugv->setStyleSheet(
|
|
||||||
"QPushButton:hover{"
|
|
||||||
"background-color:rgb(186, 189, 182);"
|
|
||||||
"border-bottom:2px solid rgb(67, 154, 246);}"
|
|
||||||
"QPushButton:checked{"
|
|
||||||
"background-color:cyan;"
|
|
||||||
"border-bottom:2px solid white}"
|
|
||||||
"QPushButton:pressed{"
|
|
||||||
"background-color:rgb(67, 154, 246)}"
|
|
||||||
"QPushButton{"
|
|
||||||
"background-color:rgb(238, 238, 236);"
|
|
||||||
"border:none;"
|
|
||||||
"padding:0px 0px 0px 0px;"
|
|
||||||
"margin:0px 0px 0px 0px;}");
|
|
||||||
|
|
||||||
// 8 -> Forward: ↑
|
|
||||||
ui->pushButton_Forward->setShortcut(Qt::Key_8);
|
|
||||||
ui->pushButton_Forward->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/up.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/up_2.png)}");
|
|
||||||
ui->pushButton_Forward->setFlat(true);
|
|
||||||
|
|
||||||
// 2 -> Back: ↓
|
|
||||||
ui->pushButton_Back->setShortcut(Qt::Key_2);
|
|
||||||
ui->pushButton_Back->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/down.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/down_2.png)}");
|
|
||||||
ui->pushButton_Back->setFlat(true);
|
|
||||||
|
|
||||||
// 4 -> Left: ←
|
|
||||||
ui->pushButton_Left->setShortcut(Qt::Key_4);
|
|
||||||
ui->pushButton_Left->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/left.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/left_2.png)}");
|
|
||||||
ui->pushButton_Left->setFlat(true);
|
|
||||||
|
|
||||||
// 6 -> Right: →
|
|
||||||
ui->pushButton_Right->setShortcut(Qt::Key_6);
|
|
||||||
ui->pushButton_Right->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/right.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/right_2.png)}");
|
|
||||||
ui->pushButton_Right->setFlat(true);
|
|
||||||
|
|
||||||
// 7 -> Left_Forward: ↖
|
|
||||||
ui->pushButton_Left_Forward->setShortcut(Qt::Key_7);
|
|
||||||
ui->pushButton_Left_Forward->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/up_left.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/up_left_2.png)}");
|
|
||||||
ui->pushButton_Left_Forward->setFlat(true);
|
|
||||||
|
|
||||||
// 9 -> Right_Forward: ↗
|
|
||||||
ui->pushButton_Right_Forward->setShortcut(Qt::Key_9);
|
|
||||||
ui->pushButton_Right_Forward->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/up_right.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/up_right_2.png)}");
|
|
||||||
ui->pushButton_Right_Forward->setFlat(true);
|
|
||||||
|
|
||||||
// 1 -> Left_Back: ↙
|
|
||||||
ui->pushButton_Left_Back->setShortcut(Qt::Key_1);
|
|
||||||
ui->pushButton_Left_Back->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/down_left.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/down_left_2.png)}");
|
|
||||||
ui->pushButton_Left_Back->setFlat(true);
|
|
||||||
|
|
||||||
// 3 -> Right_Back: ↘
|
|
||||||
ui->pushButton_Right_Back->setShortcut(Qt::Key_3);
|
|
||||||
ui->pushButton_Right_Back->setStyleSheet(
|
|
||||||
"QPushButton{border-image: url(://images/down_right.png)}"
|
|
||||||
"QPushButton{border:none}"
|
|
||||||
"QPushButton:pressed{border-image: url(://images/down_right_2.png)}");
|
|
||||||
ui->pushButton_Right_Back->setFlat(true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::slot_keyboard_control(){
|
|
||||||
QPushButton *btn = qobject_cast<QPushButton *>(sender());
|
|
||||||
std::string btn_name = btn->text().toStdString();
|
|
||||||
char key = ' ';
|
|
||||||
|
|
||||||
if (btn_name == "↙")
|
|
||||||
key = '1';
|
|
||||||
else if (btn_name == "↓")
|
|
||||||
key = '2';
|
|
||||||
else if (btn_name == "↘")
|
|
||||||
key = '3';
|
|
||||||
else if (btn_name == "←")
|
|
||||||
key = '4';
|
|
||||||
//else if (btn_name == "")
|
|
||||||
// key = '5';
|
|
||||||
else if (btn_name == "→")
|
|
||||||
key = '6';
|
|
||||||
else if (btn_name == "↖")
|
|
||||||
key = '7';
|
|
||||||
else if (btn_name == "↑")
|
|
||||||
key = '8';
|
|
||||||
else if (btn_name == "↗")
|
|
||||||
key = '9';
|
|
||||||
|
|
||||||
//速度
|
|
||||||
float liner = ui->horizontalSlider_linear->value() * 0.01;
|
|
||||||
float turn = ui->horizontalSlider_raw->value() * 0.01;
|
|
||||||
//bool is_rage_mode = ui->checkBox_rage_mode->isChecked();
|
|
||||||
//std::cout<<liner<<" "<<turn<<std::endl;
|
|
||||||
qnode.KeyboardMove(key, liner, turn);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::slot_rockKeyChange(int key){
|
|
||||||
//速度
|
|
||||||
float liner = ui->horizontalSlider_linear->value() * 0.01;
|
|
||||||
float turn = ui->horizontalSlider_raw->value() * 0.01;
|
|
||||||
switch (key) {
|
|
||||||
case upleft:
|
|
||||||
qnode.KeyboardMove('7', liner, turn);
|
|
||||||
break;
|
|
||||||
case up:
|
|
||||||
qnode.KeyboardMove('8', liner, turn);
|
|
||||||
break;
|
|
||||||
case upright:
|
|
||||||
qnode.KeyboardMove('9', liner, turn);
|
|
||||||
break;
|
|
||||||
case left:
|
|
||||||
qnode.KeyboardMove('4', liner, turn);
|
|
||||||
break;
|
|
||||||
case right:
|
|
||||||
qnode.KeyboardMove('6', liner, turn);
|
|
||||||
break;
|
|
||||||
case downleft:
|
|
||||||
qnode.KeyboardMove('1', liner, turn);
|
|
||||||
break;
|
|
||||||
case down:
|
|
||||||
qnode.KeyboardMove('2', liner, turn);
|
|
||||||
break;
|
|
||||||
case downright:
|
|
||||||
qnode.KeyboardMove('3', liner, turn);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::connections(){
|
|
||||||
QObject::connect(ui->btn_main, &QPushButton::clicked, this, [=](){
|
|
||||||
ui->stackedWidget_main->setCurrentIndex(0);
|
|
||||||
});
|
|
||||||
QObject::connect(ui->btn_uav, &QPushButton::clicked, this, [=](){
|
|
||||||
ui->stackedWidget_main->setCurrentIndex(1);
|
|
||||||
});
|
|
||||||
QObject::connect(ui->btn_ugv, &QPushButton::clicked, this, [=](){
|
|
||||||
ui->stackedWidget_main->setCurrentIndex(2);
|
|
||||||
});
|
|
||||||
/*
|
|
||||||
* 绑定速度控制按钮
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 8 -> Forward: ↑
|
|
||||||
connect(ui->pushButton_Forward, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 2 -> Back: ↓
|
|
||||||
connect(ui->pushButton_Back, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 4 -> Left: ←
|
|
||||||
connect(ui->pushButton_Left, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 6 -> Right: →
|
|
||||||
connect(ui->pushButton_Right, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 7 -> Left_Forward: ↖
|
|
||||||
connect(ui->pushButton_Left_Forward, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 9 -> Right_Forward: ↗
|
|
||||||
connect(ui->pushButton_Right_Forward, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 1 -> Left_Back: ↙
|
|
||||||
connect(ui->pushButton_Left_Back, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
// 3 -> Right_Back: ↘
|
|
||||||
connect(ui->pushButton_Right_Back, SIGNAL(clicked()), this, SLOT(slot_keyboard_control()));
|
|
||||||
|
|
||||||
connect(rock_widget, SIGNAL(keyNumchanged(int)), this,
|
|
||||||
SLOT(slot_rockKeyChange(int)));
|
|
||||||
|
|
||||||
//绑定slider的函数
|
|
||||||
connect(ui->horizontalSlider_raw, SIGNAL(valueChanged(int)), this,
|
|
||||||
SLOT(Slider_raw_valueChanged(int)));
|
|
||||||
connect(ui->horizontalSlider_linear, SIGNAL(valueChanged(int)), this,
|
|
||||||
SLOT(Slider_linear_valueChanged(int)));
|
|
||||||
}
|
|
||||||
|
|
||||||
//滑动条处理槽函数
|
|
||||||
void MainWindow::Slider_raw_valueChanged(int v) {
|
|
||||||
ui->label_raw->setText(QString::number(v));
|
|
||||||
}
|
|
||||||
//滑动条处理槽函数
|
|
||||||
void MainWindow::Slider_linear_valueChanged(int v) {
|
|
||||||
ui->label_linear->setText(QString::number(v));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue