#pragma once #include #include #include #include #include "SignalLabel.h" #include "ui_SignalIndicatorLampUI.h" class SignalIndicatorLampUI : public QWidget { Q_OBJECT public: enum LayoutType // 信号灯布局类型 { HLyt, // 水平 VLyt, // 垂直 GLyt, // 网格 }; SignalIndicatorLampUI( QWidget *parent = Q_NULLPTR); ~SignalIndicatorLampUI(); void AttachDock(class DockWidget* dockWidget); void InitIndicatorLamp(QStringList &lamps, LayoutType type, int nColCount = 4); void SetLampState(std::vector vecStatus); void UpdateIndicatorLamp(QStringList& lamps, LayoutType type, int nColCount = 4); void InitLamp(const QString& strFile); protected slots: void slotUpdateTime(double dTime); protected: void paintEvent(QPaintEvent* event); void ParseLamp(const QString& strFile); private: Ui::SignalIndicatorLampUI ui; QList m_listLampPtr; QList m_lampStatus; int m_iLampCount = 0; };