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