Files

137 lines
2.2 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,bool is_use_line = false, 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();
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:
/**
* @brief 根据改变的值设置线的长度
* @param value 舵机反馈值
*/
void setLineValue(double value);
int w = 300;
int h = 20;
int m_offset = 2;
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;
QProgressBar *bar = nullptr;
QMap<QVariant,state> stateMap;
bool type = 0;
};
#endif // STATEWIDGET_H