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);
|
||||
|
||||
@@ -58,10 +61,22 @@ StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
||||
|
||||
|
||||
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);
|
||||
|
||||
@@ -121,7 +136,20 @@ StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidg
|
||||
type = flag;
|
||||
|
||||
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)
|
||||
|
||||
this->resize(this->size().width() + 6,this->height() + 6);
|
||||
// this->resize(this->size().width() + 6,this->height() + 6);
|
||||
|
||||
if(title)
|
||||
{
|
||||
@@ -196,7 +224,7 @@ void StateWidget::enterEvent(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)
|
||||
{
|
||||
@@ -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)
|
||||
{
|
||||
@@ -247,6 +296,11 @@ void StateWidget::setValue(QString s)
|
||||
if(label)
|
||||
{
|
||||
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
|
||||
{
|
||||
|
||||
|
||||
double last = min;
|
||||
|
||||
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)
|
||||
{
|
||||
min = m_min;
|
||||
max = m_max;
|
||||
this->m_min = m_min;
|
||||
this->m_max = m_max;
|
||||
|
||||
if(bar)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#ifndef STATEWIDGET_H
|
||||
#ifndef STATEWIDGET_H
|
||||
#define STATEWIDGET_H
|
||||
|
||||
#include <QObject>
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <QtGlobal>
|
||||
#include "QLabel"
|
||||
#include "QProgressBar"
|
||||
#include "QGridLayout"
|
||||
#include <QGridLayout>
|
||||
#include "QFont"
|
||||
|
||||
class StateWidget :public QWidget
|
||||
@@ -31,9 +31,9 @@ public:
|
||||
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();
|
||||
|
||||
@@ -103,6 +103,12 @@ private slots:
|
||||
|
||||
|
||||
private:
|
||||
/**
|
||||
* @brief 根据改变的值设置线的长度
|
||||
* @param value 舵机反馈值
|
||||
*/
|
||||
void setLineValue(double value);
|
||||
|
||||
|
||||
int w = 300;
|
||||
int h = 20;
|
||||
@@ -111,6 +117,10 @@ private:
|
||||
double max = 99999999999999999;
|
||||
double min = -99999999999999999;
|
||||
|
||||
bool _is_use_line; //是否使用数值线
|
||||
double m_max = 0;
|
||||
double m_min = 0;
|
||||
QWidget value_line; //数值线
|
||||
QGridLayout *gridlayout;
|
||||
QLabel *title = nullptr;
|
||||
QLabel *label = nullptr;
|
||||
|
||||
+26
-14
@@ -1,4 +1,4 @@
|
||||
#include "StatusUI.h"
|
||||
#include "StatusUI.h"
|
||||
#include "ui_StatusUI.h"
|
||||
|
||||
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,"爬升率[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}});
|
||||
install(actuator,0,"右副翼[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"左升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"右升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"左方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"右方向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"左扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"右扰流[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"左变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"右变体[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
install(actuator,0,"转向[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}});
|
||||
StateWidget *t;
|
||||
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(-30, 30);
|
||||
t = install(actuator,0,"左升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||
t->setRange(-20, 20);
|
||||
t = install(actuator,0,"右升降[°]",0,QMap<QVariant, StateWidget::state>{{2,StateWidget::state::red}}, true);
|
||||
t->setRange(-20, 20);
|
||||
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(-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,
|
||||
@@ -399,9 +411,9 @@ bool StatusUI::addGroup(int column,int index)
|
||||
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);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#ifndef STATUSUI_H
|
||||
#ifndef STATUSUI_H
|
||||
#define STATUSUI_H
|
||||
|
||||
#include <QWidget>
|
||||
@@ -47,7 +47,7 @@ private slots:
|
||||
|
||||
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(int column, int index, int flag, QString name, QVariant value);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
|
||||
.QFrame {
|
||||
background-color: #FFFFFF;
|
||||
@@ -6,8 +6,16 @@
|
||||
|
||||
|
||||
|
||||
.QLabel {
|
||||
font :17px "黑体";
|
||||
.QLabel
|
||||
{
|
||||
font-family: "黑体";
|
||||
font-size:20px;
|
||||
}
|
||||
|
||||
.QLabel:hover
|
||||
{
|
||||
font-family: "黑体";
|
||||
font-size:23px;
|
||||
}
|
||||
|
||||
.QProgressBar {
|
||||
|
||||
Reference in New Issue
Block a user