#ifndef CUSTOMDISPLAYPANEL_H #define CUSTOMDISPLAYPANEL_H #include #include #include #include #include #include #include "openjson.h" /** * 创建一个自定义的显示面板 * 上半部分的左边为图示,右边为显示的主要KPI指标标签 * 下半部为表格,显示主要的参数 */ class CustomDisplayPanel : public QWidget { Q_OBJECT public: explicit CustomDisplayPanel(QWidget *parent = nullptr); protected: int m_label_count; int m_table_rows_count; int m_table_rols_count; QStringList m_lables; QStringList m_rowItems; QString m_imagePath; QString m_mainLabel; QVector m_txtLabels; QTableWidget* m_pTableWidget; public: typedef enum _tagPanelType: int { PANEL_TEMPERATURE = 1, PANEL_BATTERY, PANEL_POWER, PANEL_AC, PANEL_PV, PANEL_ALARM, PANEL_INVERTER, PANEL_HOME, } PanelType; public: void setImage(const QString& img) { m_imagePath = img; } //设置显示指标和表格数据,其中显示的标签数量需要跟QStringlist的数量一致 void setLableCount(int number = 5) { m_label_count = number; }; void setTableRolCount(int number = 2) { m_table_rols_count = number; } void setTableRowsCount(int number = 10) { m_table_rows_count = number; }; void setLables(const QStringList& sl) { m_lables = sl; } void setRowItems(const QStringList& sl) { m_rowItems = sl; } //设置Panel的标题 void setMainLabel(QString label) { m_mainLabel = label; } virtual void Build(); public: //更新数据 void UpdateData(OpenJson& json); void UpdateTemperature(OpenJson& json); void UpdateAlarm(OpenJson& json); public: signals: }; class CustomWarningPanel : public CustomDisplayPanel { Q_OBJECT public: explicit CustomWarningPanel(QWidget *parent = nullptr); virtual void Build(); }; #endif // CUSTOMDISPLAYPANEL_H