Files
gcs-nf/App/StatusUI/StateWidget.h
T
2021-10-19 10:21:05 +08:00

127 lines
1.9 KiB
C++

#ifndef STATEWIDGET_H
#define STATEWIDGET_H
#include <QObject>
#include <QWidget>
#include "QMouseEvent"
#include "QDebug"
#include "QAction"
#include "QMenu"
#include "QColor"
#include "QLabel"
#include "mavlink.h"
#include "QStyle"
#include "QDebug"
#include "QScreen"
#include <QtGlobal>
#include "QLabel"
#include "QProgressBar"
#include "QGridLayout"
#include "QFont"
class StateWidget :public QWidget
{
Q_OBJECT
public:
enum state{
green = 0,
red = 1,
orange = 2,
gray = 3,
};
explicit StateWidget(int flag, int index = 0,QWidget *parent = nullptr);
explicit StateWidget(int flag, QString t, QVariant v = 0, state s = state::gray, int index = 0, QWidget *parent = nullptr);
~StateWidget();
int id;
void setMax(double v)
{
max = v;
}
void setMin(double v)
{
min = v;
}
signals:
public slots:
int ID(void)
{
return id;
}
QString Name(void)
{
return title->text();
}
int offset(void)
{
return m_offset;
}
void setStats(QMap<QVariant, state> l);
QMap<QVariant,state> Stats(void)
{
return stateMap;
}
void setColor(state s);
void setValue(QString s);
void setRange(double m_min,double m_max);
protected:
//鼠标按下事件处理函数
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void enterEvent(QEvent * event);
void leaveEvent(QEvent *event);
private slots:
private:
int w = 300;
int h = 20;
int m_offset = 2;
double max = 99999999999999999;
double min = -99999999999999999;
QGridLayout *gridlayout;
QLabel *title = nullptr;
QLabel *label = nullptr;
QProgressBar *bar = nullptr;
QMap<QVariant,state> stateMap;
bool type = 0;
};
#endif // STATEWIDGET_H