#ifndef STATEWIDGET_H #define STATEWIDGET_H #include #include #include "QMouseEvent" #include "QDebug" #include "QAction" #include "QMenu" #include "QColor" #include "QLabel" #include "mavlink.h" #include "QStyle" #include "QDebug" #include "QScreen" #include #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 l); QMap 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 stateMap; bool type = 0; }; #endif // STATEWIDGET_H