新增通用按钮地图控件
This commit is contained in:
105
buttondefence/buttondefence.h
Normal file
105
buttondefence/buttondefence.h
Normal file
@@ -0,0 +1,105 @@
|
||||
#ifndef BUTTONDEFENCE_H
|
||||
#define BUTTONDEFENCE_H
|
||||
|
||||
/**
|
||||
* 防区按钮控件 作者:feiyangqingyun(QQ:517216493) 2018-7-2
|
||||
* 1:可设置防区样式 圆形、警察、气泡、气泡2、消息、消息2
|
||||
* 2:可设置防区状态 布防、撤防、报警、旁路、故障
|
||||
* 3:可设置报警切换
|
||||
* 4:可设置显示的防区号
|
||||
* 5:可设置是否可鼠标拖动
|
||||
* 6:发出单击和双击信号
|
||||
*/
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#ifdef quc
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
|
||||
#include <QtDesigner/QDesignerExportWidget>
|
||||
#else
|
||||
#include <QtUiPlugin/QDesignerExportWidget>
|
||||
#endif
|
||||
|
||||
class QDESIGNER_WIDGET_EXPORT ButtonDefence : public QWidget
|
||||
#else
|
||||
class ButtonDefence : public QWidget
|
||||
#endif
|
||||
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_ENUMS(ButtonStyle)
|
||||
Q_ENUMS(ButtonStatus)
|
||||
|
||||
Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove)
|
||||
Q_PROPERTY(QString text READ getText WRITE setText)
|
||||
|
||||
Q_PROPERTY(ButtonStyle buttonStyle READ getButtonStyle WRITE setButtonStyle)
|
||||
Q_PROPERTY(ButtonStatus buttonStatus READ getButtonStatus WRITE setButtonStatus)
|
||||
|
||||
public:
|
||||
//防区样式 圆形、警察、气泡、气泡2、消息、消息2
|
||||
enum ButtonStyle {
|
||||
ButtonStyle_Circle = 0,
|
||||
ButtonStyle_Police = 1,
|
||||
ButtonStyle_Bubble = 2,
|
||||
ButtonStyle_Bubble2 = 3,
|
||||
ButtonStyle_Msg = 4,
|
||||
ButtonStyle_Msg2 = 5
|
||||
};
|
||||
|
||||
//防区状态 布防、撤防、报警、旁路、故障
|
||||
enum ButtonStatus {
|
||||
ButtonStatus_Arming = 0,
|
||||
ButtonStatus_Disarming = 1,
|
||||
ButtonStatus_Alarm = 2,
|
||||
ButtonStatus_Bypass = 3,
|
||||
ButtonStatus_Error = 4
|
||||
};
|
||||
|
||||
explicit ButtonDefence(QWidget *parent = 0);
|
||||
~ButtonDefence();
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *);
|
||||
bool eventFilter(QObject *watched, QEvent *event);
|
||||
|
||||
private:
|
||||
bool canMove; //是否可移动
|
||||
QString text; //显示文字
|
||||
ButtonStyle buttonStyle; //防区样式
|
||||
ButtonStatus buttonStatus; //防区状态
|
||||
|
||||
QString type; //图片末尾类型
|
||||
QString imgName; //背景图片名称
|
||||
bool isDark; //是否加深报警
|
||||
QTimer *timer; //报警闪烁定时器
|
||||
|
||||
private slots:
|
||||
void checkAlarm();
|
||||
|
||||
public:
|
||||
bool getCanMove() const;
|
||||
QString getText() const;
|
||||
|
||||
ButtonStyle getButtonStyle() const;
|
||||
ButtonStatus getButtonStatus() const;
|
||||
|
||||
QSize sizeHint() const;
|
||||
QSize minimumSizeHint() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
//设置可移动
|
||||
void setCanMove(bool canMove);
|
||||
//设置显示文字
|
||||
void setText(const QString &text);
|
||||
//设置防区样式
|
||||
void setButtonStyle(const ButtonStyle &buttonStyle);
|
||||
//设置防区状态
|
||||
void setButtonStatus(const ButtonStatus &buttonStatus);
|
||||
|
||||
Q_SIGNALS:
|
||||
void clicked();
|
||||
void doubleClicked();
|
||||
};
|
||||
|
||||
#endif //BUTTONDEFENCE_H
|
||||
Reference in New Issue
Block a user