状态颜色完善
This commit is contained in:
@@ -2,12 +2,21 @@
|
|||||||
|
|
||||||
StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
||||||
{
|
{
|
||||||
|
this->setMouseTracking(true);
|
||||||
|
|
||||||
gridlayout = new QGridLayout(this);
|
gridlayout = new QGridLayout(this);
|
||||||
gridlayout->setMargin(0);
|
gridlayout->setMargin(0);
|
||||||
gridlayout->setVerticalSpacing(6);
|
gridlayout->setVerticalSpacing(6);
|
||||||
|
|
||||||
|
|
||||||
title = new QLabel("new status");
|
title = new QLabel("new status");
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
title->setFont(font);
|
||||||
|
|
||||||
title->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
title->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||||||
title->setFixedSize(w/2,h+m_offset);
|
title->setFixedSize(w/2,h+m_offset);
|
||||||
|
|
||||||
@@ -16,6 +25,13 @@ StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
|||||||
if(flag == 0)
|
if(flag == 0)
|
||||||
{
|
{
|
||||||
label = new QLabel("0");
|
label = new QLabel("0");
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
label->setFont(font);
|
||||||
|
|
||||||
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
label->setFixedSize(w/2,h+m_offset);
|
label->setFixedSize(w/2,h+m_offset);
|
||||||
setColor(state::gray);
|
setColor(state::gray);
|
||||||
@@ -24,6 +40,13 @@ StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
bar = new QProgressBar();
|
bar = new QProgressBar();
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
bar->setFont(font);
|
||||||
|
|
||||||
bar->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
bar->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
bar->setRange(0,100);
|
bar->setRange(0,100);
|
||||||
bar->setValue(0);
|
bar->setValue(0);
|
||||||
@@ -37,6 +60,7 @@ StateWidget::StateWidget(int flag,int index,QWidget *parent) : QWidget(parent)
|
|||||||
|
|
||||||
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, QWidget *parent) : QWidget(parent)
|
||||||
{
|
{
|
||||||
|
this->setMouseTracking(true);
|
||||||
|
|
||||||
id = index;
|
id = index;
|
||||||
|
|
||||||
@@ -46,6 +70,13 @@ StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidg
|
|||||||
|
|
||||||
|
|
||||||
title = new QLabel(t);
|
title = new QLabel(t);
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
title->setFont(font);
|
||||||
|
|
||||||
title->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
title->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||||||
title->setFixedSize(w/2,h+m_offset);
|
title->setFixedSize(w/2,h+m_offset);
|
||||||
|
|
||||||
@@ -54,6 +85,13 @@ StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidg
|
|||||||
if(flag == 0)
|
if(flag == 0)
|
||||||
{
|
{
|
||||||
label = new QLabel(v.toString());
|
label = new QLabel(v.toString());
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
label->setFont(font);
|
||||||
|
|
||||||
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
label->setFixedSize(w/2,h+m_offset);
|
label->setFixedSize(w/2,h+m_offset);
|
||||||
setColor(s);
|
setColor(s);
|
||||||
@@ -62,6 +100,13 @@ StateWidget::StateWidget(int flag, QString t,QVariant v,state s,int index, QWidg
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
bar = new QProgressBar();
|
bar = new QProgressBar();
|
||||||
|
|
||||||
|
QFont font;
|
||||||
|
font.setFamily("Arial");
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
bar->setFont(font);
|
||||||
|
|
||||||
bar->setFormat("%v");
|
bar->setFormat("%v");
|
||||||
bar->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
bar->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
bar->setRange(0,100);
|
bar->setRange(0,100);
|
||||||
@@ -98,6 +143,81 @@ StateWidget::~StateWidget()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StateWidget::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
|
}
|
||||||
|
|
||||||
|
void StateWidget::mouseReleaseEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
|
}
|
||||||
|
|
||||||
|
void StateWidget::mouseMoveEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
|
}
|
||||||
|
|
||||||
|
void StateWidget::enterEvent(QEvent * event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
|
|
||||||
|
this->resize(this->size().width() + 6,this->height() + 6);
|
||||||
|
|
||||||
|
if(title)
|
||||||
|
{
|
||||||
|
QFont font = title->font();
|
||||||
|
font.setBold(true);
|
||||||
|
font.setPixelSize(23);
|
||||||
|
title->setFont(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(label)
|
||||||
|
{
|
||||||
|
QFont font = label->font();
|
||||||
|
font.setBold(true);
|
||||||
|
font.setPixelSize(23);
|
||||||
|
label->setFont(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bar)
|
||||||
|
{
|
||||||
|
QFont font = bar->font();
|
||||||
|
font.setBold(true);
|
||||||
|
font.setPixelSize(23);
|
||||||
|
bar->setFont(font);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StateWidget::leaveEvent(QEvent *event)
|
||||||
|
{
|
||||||
|
this->resize(this->size().width() - 6,this->height() - 6);
|
||||||
|
|
||||||
|
if(title)
|
||||||
|
{
|
||||||
|
QFont font = title->font();
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
title->setFont(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(label)
|
||||||
|
{
|
||||||
|
QFont font = label->font();
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
label->setFont(font);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bar)
|
||||||
|
{
|
||||||
|
QFont font = bar->font();
|
||||||
|
font.setBold(false);
|
||||||
|
font.setPixelSize(20);
|
||||||
|
bar->setFont(font);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void StateWidget::setColor(state s)
|
void StateWidget::setColor(state s)
|
||||||
{
|
{
|
||||||
@@ -144,20 +264,31 @@ void StateWidget::setValue(QString s)
|
|||||||
|
|
||||||
for (QMap<QVariant,state>::iterator i = stateMap.begin(); i != stateMap.end(); ++i) {
|
for (QMap<QVariant,state>::iterator i = stateMap.begin(); i != stateMap.end(); ++i) {
|
||||||
|
|
||||||
|
if(i == stateMap.begin())
|
||||||
if((value >= last) &&(value < i.key().toDouble()))
|
|
||||||
{
|
{
|
||||||
setColor(i.value());
|
if(value < i.key().toDouble())
|
||||||
break;
|
{
|
||||||
|
setColor(state::red);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((value >= last) &&(value <= i.key().toDouble()))
|
||||||
|
{
|
||||||
|
setColor(i.value());
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
last = i.key().toDouble();
|
last = i.key().toDouble();
|
||||||
|
|
||||||
if(i == stateMap.end())//overflow is red
|
if((i+1) == stateMap.end())//overflow is red
|
||||||
{
|
{
|
||||||
if((value >= last) &&(value < max))
|
if(value > (i+1).key().toDouble())
|
||||||
{
|
{
|
||||||
setColor(state::red);
|
setColor(state::red);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#include "QLabel"
|
#include "QLabel"
|
||||||
#include "QProgressBar"
|
#include "QProgressBar"
|
||||||
#include "QGridLayout"
|
#include "QGridLayout"
|
||||||
|
#include "QFont"
|
||||||
|
|
||||||
class StateWidget :public QWidget
|
class StateWidget :public QWidget
|
||||||
{
|
{
|
||||||
@@ -87,6 +88,16 @@ public slots:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
||||||
|
//鼠标按下事件处理函数
|
||||||
|
void mousePressEvent(QMouseEvent *event);
|
||||||
|
void mouseReleaseEvent(QMouseEvent *event);
|
||||||
|
void mouseMoveEvent(QMouseEvent *event);
|
||||||
|
void enterEvent(QEvent * event);
|
||||||
|
void leaveEvent(QEvent *event);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+13
-13
@@ -30,10 +30,10 @@ StatusUI::StatusUI(QWidget *parent) :
|
|||||||
|
|
||||||
install(mode,0,"飞行模式",0,QMap<QVariant, StateWidget::state>{{"待机",StateWidget::state::gray},{"手动",StateWidget::state::orange},{"自主",StateWidget::state::green}});
|
install(mode,0,"飞行模式",0,QMap<QVariant, StateWidget::state>{{"待机",StateWidget::state::gray},{"手动",StateWidget::state::orange},{"自主",StateWidget::state::green}});
|
||||||
|
|
||||||
install(base,0,"攻角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green},{90,StateWidget::state::red}});
|
install(base,0,"攻角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green}});
|
||||||
install(base,0,"侧滑角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green},{90,StateWidget::state::red}});
|
install(base,0,"侧滑角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green}});
|
||||||
install(base,0,"滚转角[°]",0,QMap<QVariant, StateWidget::state>{{-45,StateWidget::state::red},{45,StateWidget::state::green},{90,StateWidget::state::red}});
|
install(base,0,"滚转角[°]",0,QMap<QVariant, StateWidget::state>{{-45,StateWidget::state::red},{45,StateWidget::state::green}});
|
||||||
install(base,0,"俯仰角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green},{90,StateWidget::state::red}});
|
install(base,0,"俯仰角[°]",0,QMap<QVariant, StateWidget::state>{{-20,StateWidget::state::red},{20,StateWidget::state::green}});
|
||||||
install(base,0,"航迹角[°]",0);
|
install(base,0,"航迹角[°]",0);
|
||||||
install(base,0,"海拔[m]",0);
|
install(base,0,"海拔[m]",0);
|
||||||
install(base,0,"表速[m/s]",0,QMap<QVariant, StateWidget::state>{{100,StateWidget::state::red},{700,StateWidget::state::green}});
|
install(base,0,"表速[m/s]",0,QMap<QVariant, StateWidget::state>{{100,StateWidget::state::red},{700,StateWidget::state::green}});
|
||||||
@@ -94,18 +94,18 @@ StatusUI::StatusUI(QWidget *parent) :
|
|||||||
//install(state,0,"开伞状态",0);
|
//install(state,0,"开伞状态",0);
|
||||||
|
|
||||||
install(battery,0,"飞控电压[V]",0,
|
install(battery,0,"飞控电压[V]",0,
|
||||||
QMap<QVariant, StateWidget::state>{{"23",StateWidget::state::red},
|
QMap<QVariant, StateWidget::state>{{23,StateWidget::state::red},
|
||||||
{"24",StateWidget::state::orange},
|
{24,StateWidget::state::orange},
|
||||||
{"50",StateWidget::state::green}});
|
{50,StateWidget::state::green}});
|
||||||
install(battery,0,"舵机电压[V]",0,
|
install(battery,0,"舵机电压[V]",0,
|
||||||
QMap<QVariant, StateWidget::state>{{"46",StateWidget::state::red},
|
QMap<QVariant, StateWidget::state>{{46,StateWidget::state::red},
|
||||||
{"48",StateWidget::state::orange},
|
{48,StateWidget::state::orange},
|
||||||
{"80",StateWidget::state::green}});
|
{80,StateWidget::state::green}});
|
||||||
|
|
||||||
install(communication,0,"信号[%]",0,
|
install(communication,0,"信号[%]",0,
|
||||||
QMap<QVariant, StateWidget::state>{{"50",StateWidget::state::red},
|
QMap<QVariant, StateWidget::state>{{50,StateWidget::state::red},
|
||||||
{"80",StateWidget::state::orange},
|
{80,StateWidget::state::orange},
|
||||||
{"100",StateWidget::state::green}});
|
{100,StateWidget::state::green}});
|
||||||
install(communication,0,"接收[B/s]",0);
|
install(communication,0,"接收[B/s]",0);
|
||||||
install(communication,0,"发送[B/s]",0);
|
install(communication,0,"发送[B/s]",0);
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,10 @@
|
|||||||
|
|
||||||
|
|
||||||
.QLabel {
|
.QLabel {
|
||||||
font: 20px "Arial";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.QProgressBar {
|
.QProgressBar {
|
||||||
font: 20px "Arial";
|
|
||||||
background-color: #BDBDBD;
|
background-color: #BDBDBD;
|
||||||
border-color: #BDBDBD;
|
border-color: #BDBDBD;
|
||||||
}
|
}
|
||||||
@@ -21,43 +20,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.QLabel#label_mode{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QLabel#label_base{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QLabel#label_servo{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QLabel#label_engine{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QLabel#label_battery{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
.QLabel#label_dlink{
|
|
||||||
font: 15px "Arial";
|
|
||||||
font-weight:bold;
|
|
||||||
font-italic:true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.QLabel[state="0"] {
|
.QLabel[state="0"] {
|
||||||
border-image:url(:/img/success_rect.png);
|
border-image:url(:/img/success_rect.png);
|
||||||
|
|||||||
+15
-4
@@ -466,7 +466,7 @@ bool DLink::setup_remote(const QString port, qint32 baud, QSerialPort::Parity pa
|
|||||||
bool isSuccess = false;
|
bool isSuccess = false;
|
||||||
QSerialPort *serialPort = new QSerialPort(port, this);
|
QSerialPort *serialPort = new QSerialPort(port, this);
|
||||||
|
|
||||||
if (serialPort->open(QIODevice::ReadOnly))
|
if (serialPort->open(QIODevice::ReadWrite))
|
||||||
{
|
{
|
||||||
serialPort->setBaudRate(baud);
|
serialPort->setBaudRate(baud);
|
||||||
serialPort->setStopBits(QSerialPort::OneStop);
|
serialPort->setStopBits(QSerialPort::OneStop);
|
||||||
@@ -488,7 +488,7 @@ bool DLink::setup_rtk(const QString port, qint32 baudrate, QSerialPort::Parity p
|
|||||||
bool isSuccess = false;
|
bool isSuccess = false;
|
||||||
QSerialPort *serialPort = new QSerialPort(port, this);
|
QSerialPort *serialPort = new QSerialPort(port, this);
|
||||||
|
|
||||||
if (serialPort->open(QIODevice::ReadOnly))
|
if (serialPort->open(QIODevice::ReadWrite))
|
||||||
{
|
{
|
||||||
serialPort->setBaudRate(baudrate);
|
serialPort->setBaudRate(baudrate);
|
||||||
serialPort->setStopBits(QSerialPort::OneStop);
|
serialPort->setStopBits(QSerialPort::OneStop);
|
||||||
@@ -564,15 +564,26 @@ void DLink::processPendingMulticastDatagrams(void)
|
|||||||
void DLink::readRTKPendingDatagrams(void)
|
void DLink::readRTKPendingDatagrams(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
QObject *obj = sender();
|
//QObject *obj = sender();
|
||||||
|
|
||||||
QSerialPort *serialport = qobject_cast<QSerialPort *>(obj);
|
QSerialPort *serialport = qobject_cast<QSerialPort *>(sender());
|
||||||
if(serialport)
|
if(serialport)
|
||||||
{
|
{
|
||||||
QByteArray datagram = serialport->readAll();
|
QByteArray datagram = serialport->readAll();
|
||||||
|
|
||||||
if(datagram.size() > 0)
|
if(datagram.size() > 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//serialport->write(datagram);
|
||||||
|
|
||||||
|
|
||||||
|
QEvent *rtk_receive= new QEvent(QEvent::User);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QCoreApplication::sendEvent(nullptr,rtk_receive);
|
||||||
|
|
||||||
|
|
||||||
emit getRTK(SourceType::s_port,datagram);
|
emit getRTK(SourceType::s_port,datagram);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
#include "QDebug"
|
#include "QDebug"
|
||||||
#include "mavlinknode.h"
|
#include "mavlinknode.h"
|
||||||
|
|
||||||
|
#include "QEvent"
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user