Merge remote-tracking branch 'origin/aj500b_5' into aj500b
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
#include "StateWidget.h"
|
#include "StateWidget.h"
|
||||||
|
|
||||||
|
StateWidget::StateWidget(int flag,int index, bool is_use_line, QWidget *parent) :
|
||||||
|
_is_use_line(is_use_line),
|
||||||
|
QWidget(parent)
|
||||||
|
|
||||||
StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
|
||||||
{
|
{
|
||||||
this->setMouseTracking(true);
|
this->setMouseTracking(true);
|
||||||
|
|
||||||
@@ -58,10 +61,22 @@ StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
|||||||
|
|
||||||
|
|
||||||
this->setLayout(gridlayout);
|
this->setLayout(gridlayout);
|
||||||
this->resize(w,h+ 2 * m_offset);
|
this->resize(w,h+ 2 * m_offset + 3);
|
||||||
|
|
||||||
|
//表示数值的那条线
|
||||||
|
if(_is_use_line)
|
||||||
|
{
|
||||||
|
value_line.setParent(this);
|
||||||
|
value_line.setStyleSheet("background-color: #01BBFF;");
|
||||||
|
value_line.resize(0, 2);
|
||||||
|
value_line.move(0, label->height() - 2);
|
||||||
|
gridlayout->addWidget(&value_line, 2, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidget *parent) : QWidget(parent)
|
StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index,bool is_use_line, QWidget *parent) :
|
||||||
|
_is_use_line(is_use_line),
|
||||||
|
QWidget(parent)
|
||||||
{
|
{
|
||||||
this->setMouseTracking(true);
|
this->setMouseTracking(true);
|
||||||
|
|
||||||
@@ -121,7 +136,20 @@ StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidg
|
|||||||
type = flag;
|
type = flag;
|
||||||
|
|
||||||
this->setLayout(gridlayout);
|
this->setLayout(gridlayout);
|
||||||
this->resize(w,h + 2 * m_offset);
|
this->resize(w,h + 2 * m_offset + 3);
|
||||||
|
|
||||||
|
//表示数值的那条线
|
||||||
|
if(_is_use_line)
|
||||||
|
{
|
||||||
|
qDebug() << u8"使用线";
|
||||||
|
value_line.setParent(this);
|
||||||
|
value_line.setStyleSheet("background-color: #01BBFF;");
|
||||||
|
value_line.resize(0, 2);
|
||||||
|
value_line.move(0, label->height() - 2);
|
||||||
|
gridlayout->addWidget(&value_line, 2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -167,7 +195,7 @@ void StateWidget::enterEvent(QEvent * event)
|
|||||||
{
|
{
|
||||||
Q_UNUSED(event)
|
Q_UNUSED(event)
|
||||||
|
|
||||||
this->resize(this->size().width() + 6,this->height() + 6);
|
// this->resize(this->size().width() + 6,this->height() + 6);
|
||||||
|
|
||||||
if(title)
|
if(title)
|
||||||
{
|
{
|
||||||
@@ -196,7 +224,7 @@ void StateWidget::enterEvent(QEvent * event)
|
|||||||
|
|
||||||
void StateWidget::leaveEvent(QEvent *event)
|
void StateWidget::leaveEvent(QEvent *event)
|
||||||
{
|
{
|
||||||
this->resize(this->size().width() - 6,this->height() - 6);
|
// this->resize(this->size().width() - 6,this->height() - 6);
|
||||||
|
|
||||||
if(title)
|
if(title)
|
||||||
{
|
{
|
||||||
@@ -223,6 +251,27 @@ void StateWidget::leaveEvent(QEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StateWidget::setLineValue(double value)
|
||||||
|
{
|
||||||
|
value_line.resize(0, 0);
|
||||||
|
|
||||||
|
double percent = value / m_max;
|
||||||
|
percent = qAbs(percent);
|
||||||
|
qDebug() << "value: " << value;
|
||||||
|
qDebug() << "m_max: " << m_max;
|
||||||
|
qDebug() << "percent: " << percent;
|
||||||
|
value_line.resize(label->width() / 2 * percent, 3); //设置线的宽度
|
||||||
|
qDebug() << u8"线的宽度:" << value_line.width();
|
||||||
|
if(value > 0)
|
||||||
|
{
|
||||||
|
value_line.move(label->pos().x() + label->width() / 2, label->pos().y() + label->height());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value_line.move(label->pos().x() + label->width() / 2 - value_line.width(), label->pos().y() + label->height());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void StateWidget::setColor(state s)
|
void StateWidget::setColor(state s)
|
||||||
{
|
{
|
||||||
@@ -247,6 +296,11 @@ void StateWidget::setValue(QString s)
|
|||||||
if(label)
|
if(label)
|
||||||
{
|
{
|
||||||
label->setText(s);
|
label->setText(s);
|
||||||
|
QStringList str_list = s.split('|');
|
||||||
|
if(_is_use_line)
|
||||||
|
{
|
||||||
|
setLineValue(str_list[1].toDouble() ); //设置线的长度
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -281,8 +335,11 @@ void StateWidget::setValue(QString s)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(flag)//number
|
if(flag)//number
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
double last = min;
|
double last = min;
|
||||||
|
|
||||||
for (QMap<QVariant,state>::iterator i = stateMap.begin(); i != stateMap.end(); ++i) {
|
for (QMap<QVariant,state>::iterator i = stateMap.begin(); i != stateMap.end(); ++i) {
|
||||||
@@ -396,8 +453,8 @@ void StateWidget::setValue(QString s)
|
|||||||
|
|
||||||
void StateWidget::setRange(double m_min,double m_max)
|
void StateWidget::setRange(double m_min,double m_max)
|
||||||
{
|
{
|
||||||
min = m_min;
|
this->m_min = m_min;
|
||||||
max = m_max;
|
this->m_max = m_max;
|
||||||
|
|
||||||
if(bar)
|
if(bar)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#ifndef STATEWIDGET_H
|
#ifndef STATEWIDGET_H
|
||||||
#define STATEWIDGET_H
|
#define STATEWIDGET_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
#include "QLabel"
|
#include "QLabel"
|
||||||
#include "QProgressBar"
|
#include "QProgressBar"
|
||||||
#include "QGridLayout"
|
#include <QGridLayout>
|
||||||
#include "QFont"
|
#include "QFont"
|
||||||
|
|
||||||
class StateWidget :public QWidget
|
class StateWidget :public QWidget
|
||||||
@@ -31,9 +31,9 @@ public:
|
|||||||
gray = 3,
|
gray = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit StateWidget(int flag, int index = 0,QWidget *parent = nullptr);
|
explicit StateWidget(int flag, int index = 0,bool is_use_line = false, QWidget *parent = nullptr);
|
||||||
|
|
||||||
explicit StateWidget(int flag, QString t, QVariant v = 0, state s = state::gray, int index = 0, QWidget *parent = nullptr);
|
explicit StateWidget(int flag, QString t, QVariant v = 0, state s = state::gray, int index = 0, bool is_use_line = false, QWidget *parent = nullptr);
|
||||||
|
|
||||||
~StateWidget();
|
~StateWidget();
|
||||||
|
|
||||||
@@ -103,6 +103,12 @@ private slots:
|
|||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
/**
|
||||||
|
* @brief 根据改变的值设置线的长度
|
||||||
|
* @param value 舵机反馈值
|
||||||
|
*/
|
||||||
|
void setLineValue(double value);
|
||||||
|
|
||||||
|
|
||||||
int w = 300;
|
int w = 300;
|
||||||
int h = 20;
|
int h = 20;
|
||||||
@@ -111,6 +117,10 @@ private:
|
|||||||
double max = 99999999999999999;
|
double max = 99999999999999999;
|
||||||
double min = -99999999999999999;
|
double min = -99999999999999999;
|
||||||
|
|
||||||
|
bool _is_use_line; //是否使用数值线
|
||||||
|
double m_max = 0;
|
||||||
|
double m_min = 0;
|
||||||
|
QWidget value_line; //数值线
|
||||||
QGridLayout *gridlayout;
|
QGridLayout *gridlayout;
|
||||||
QLabel *title = nullptr;
|
QLabel *title = nullptr;
|
||||||
QLabel *label = nullptr;
|
QLabel *label = nullptr;
|
||||||
|
|||||||
+26
-14
@@ -1,4 +1,4 @@
|
|||||||
#include "StatusUI.h"
|
#include "StatusUI.h"
|
||||||
#include "ui_StatusUI.h"
|
#include "ui_StatusUI.h"
|
||||||
|
|
||||||
StatusUI::StatusUI(QWidget *parent) :
|
StatusUI::StatusUI(QWidget *parent) :
|
||||||
@@ -43,17 +43,29 @@ StatusUI::StatusUI(QWidget *parent) :
|
|||||||
install(base,0,"马赫数[Ma]",0,QMap<QVariant, StateWidget::state>{{0.15,StateWidget::state::red},{0.8,StateWidget::state::green},{2,StateWidget::state::orange}});
|
install(base,0,"马赫数[Ma]",0,QMap<QVariant, StateWidget::state>{{0.15,StateWidget::state::red},{0.8,StateWidget::state::green},{2,StateWidget::state::orange}});
|
||||||
//install(base,0,"爬升率[m/s]",0,QMap<QVariant, StateWidget::state>{{-80,StateWidget::state::red},{100,StateWidget::state::green},{500,StateWidget::state::orange}});
|
//install(base,0,"爬升率[m/s]",0,QMap<QVariant, StateWidget::state>{{-80,StateWidget::state::red},{100,StateWidget::state::green},{500,StateWidget::state::orange}});
|
||||||
|
|
||||||
install(actuator,0,"左副翼[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
StateWidget *t;
|
||||||
install(actuator,0,"右副翼[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t = install(actuator,0,"左副翼[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
install(actuator,0,"左升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t->setRange(-30, 30);
|
||||||
install(actuator,0,"右升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t = install(actuator,0,"右副翼[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
install(actuator,0,"左方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t->setRange(-30, 30);
|
||||||
install(actuator,0,"右方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t = install(actuator,0,"左升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
install(actuator,0,"左扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t->setRange(-20, 20);
|
||||||
install(actuator,0,"右扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t = install(actuator,0,"右升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
install(actuator,0,"左变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t->setRange(-20, 20);
|
||||||
install(actuator,0,"右变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t = install(actuator,0,"左方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
install(actuator,0,"转向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
t->setRange(-30, 30);
|
||||||
|
t = install(actuator,0,"右方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(-30, 30);
|
||||||
|
t = install(actuator,0,"左扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(0, 60);
|
||||||
|
t = install(actuator,0,"右扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(0, 60);
|
||||||
|
t = install(actuator,0,"左变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(0, 65);
|
||||||
|
t = install(actuator,0,"右变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(0, 65);
|
||||||
|
t = install(actuator,0,"转向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||||
|
t->setRange(-17, 17);
|
||||||
//左副翼,右副翼,左升降,右升降,左方向,右方向,左扰流,右扰流,左变体,右变体
|
//左副翼,右副翼,左升降,右升降,左方向,右方向,左扰流,右扰流,左变体,右变体
|
||||||
|
|
||||||
install(state,0,"油门[%]",0,
|
install(state,0,"油门[%]",0,
|
||||||
@@ -399,9 +411,9 @@ bool StatusUI::addGroup(int column,int index)
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
StateWidget * StatusUI::install(StateGroup *group,int flag, QString name, QVariant value,QMap<QVariant,StateWidget::state> stats)
|
StateWidget * StatusUI::install(StateGroup *group,int flag, QString name, QVariant value,QMap<QVariant,StateWidget::state> stats, bool is_use_line)
|
||||||
{
|
{
|
||||||
StateWidget *w = new StateWidget(flag,name,value,StateWidget::state::gray,group->count());
|
StateWidget *w = new StateWidget(flag,name,value,StateWidget::state::gray,group->count(), is_use_line);
|
||||||
|
|
||||||
w->setStats(stats);
|
w->setStats(stats);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#ifndef STATUSUI_H
|
#ifndef STATUSUI_H
|
||||||
#define STATUSUI_H
|
#define STATUSUI_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
@@ -47,7 +47,7 @@ private slots:
|
|||||||
|
|
||||||
bool addGroup(int column, int index);
|
bool addGroup(int column, int index);
|
||||||
|
|
||||||
StateWidget *install(StateGroup *group, int flag, QString name, QVariant value, QMap<QVariant, StateWidget::state> stats);
|
StateWidget *install(StateGroup *group, int flag, QString name, QVariant value, QMap<QVariant, StateWidget::state> stats,bool is_use_line = false);
|
||||||
StateWidget *install(StateGroup *group,int flag, QString name, QVariant value);
|
StateWidget *install(StateGroup *group,int flag, QString name, QVariant value);
|
||||||
StateWidget *install(int column, int index, int flag, QString name, QVariant value);
|
StateWidget *install(int column, int index, int flag, QString name, QVariant value);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
.QFrame {
|
.QFrame {
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
@@ -6,8 +6,16 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.QLabel {
|
.QLabel
|
||||||
font :17px "黑体";
|
{
|
||||||
|
font-family: "黑体";
|
||||||
|
font-size:20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.QLabel:hover
|
||||||
|
{
|
||||||
|
font-family: "黑体";
|
||||||
|
font-size:23px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.QProgressBar {
|
.QProgressBar {
|
||||||
|
|||||||
Reference in New Issue
Block a user