53 lines
1.0 KiB
C++
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;
|
|
};
|