DYTSrouce/Source/src/ui/Layout/SignalIndicatorLampUI.h

53 lines
1.0 KiB
C++

#pragma once
#include <QWidget>
#include <QLabel>
#include <QPaintEvent>
#include <QList>
#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<int> vecStatus);
void UpdateIndicatorLamp(QStringList& lamps, LayoutType type, int nColCount = 4);
void InitLamp(const QString& strFile);
protected slots:
void slotUpdateTime(double dTime);
void onStatusChanged(int status);
protected:
void paintEvent(QPaintEvent* event);
void ParseLamp(const QString& strFile);
private:
Ui::SignalIndicatorLampUI ui;
QList<SignalLabel*> m_listLampPtr;
QList<int> m_lampStatus;
int m_iLampCount = 0;
};