当前位置: 首页 > news >正文

《QT实用小工具·九》设备按钮控件

1、概述
源码放在文章末尾

该项目实现了设备按钮控件,主要包含如下功能:

  1. 可设置按钮样式 圆形、警察、气泡、气泡2、消息、消息2。
  2. 可设置按钮颜色 布防、撤防、报警、旁路、故障。
  3. 可设置报警切换及对应报警切换的颜色。
  4. 可设置显示的防区号。
  5. 可设置是否可鼠标拖动。
  6. 发出单击和双击信号。

下面是demo演示:
在这里插入图片描述

项目部分代码如下所示:

#ifndef DEVICEBUTTON_H
#define DEVICEBUTTON_H/*** 设备按钮控件* 1. 可设置按钮样式 圆形、警察、气泡、气泡2、消息、消息2。* 2. 可设置按钮颜色 布防、撤防、报警、旁路、故障。* 3. 可设置报警切换及对应报警切换的颜色。* 4. 可设置显示的防区号。* 5. 可设置是否可鼠标拖动。* 6. 发出单击和双击信号。*/#include <QWidget>#ifdef quc
class Q_DECL_EXPORT DeviceButton : public QWidget
#else
class DeviceButton : public QWidget
#endif{Q_OBJECTQ_ENUMS(ButtonStyle)Q_ENUMS(ButtonColor)Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove)Q_PROPERTY(QString text READ getText WRITE setText)Q_PROPERTY(QString colorNormal READ getColorNormal WRITE setColorNormal)Q_PROPERTY(QString colorAlarm READ getColorAlarm WRITE setColorAlarm)Q_PROPERTY(ButtonStyle buttonStyle READ getButtonStyle WRITE setButtonStyle)Q_PROPERTY(ButtonColor buttonColor READ getButtonColor WRITE setButtonColor)public://设备按钮样式enum ButtonStyle {ButtonStyle_Circle = 0,     //圆形ButtonStyle_Police = 1,     //警察ButtonStyle_Bubble = 2,     //气泡ButtonStyle_Bubble2 = 3,    //气泡2ButtonStyle_Msg = 4,        //消息ButtonStyle_Msg2 = 5        //消息2};//设备按钮颜色enum ButtonColor {ButtonColor_Green = 0,      //绿色(激活状态)ButtonColor_Blue = 1,       //蓝色(在线状态)ButtonColor_Red = 2,        //红色(报警状态)ButtonColor_Gray = 3,       //灰色(离线状态)ButtonColor_Black = 4,      //黑色(故障状态)ButtonColor_Purple = 5,     //紫色(其他状态)ButtonColor_Yellow = 6      //黄色(其他状态)};explicit DeviceButton(QWidget *parent = 0);~DeviceButton();protected:void paintEvent(QPaintEvent *);bool eventFilter(QObject *watched, QEvent *event);private:bool canMove;           //是否可移动QString text;           //显示文字QString colorNormal;    //正常颜色QString colorAlarm;     //报警颜色ButtonStyle buttonStyle;//按钮样式ButtonColor buttonColor;//按钮颜色bool isPressed;         //鼠标是否按下QPoint lastPoint;       //鼠标按下最后坐标QString type;           //图片末尾类型QString imgPath;        //背景图片路径QString imgName;        //背景图片名称bool isDark;            //是否加深报警QTimer *timer;          //报警闪烁定时器private slots:void checkAlarm();      //切换报警状态public://默认尺寸和最小尺寸QSize sizeHint() const;QSize minimumSizeHint() const;//获取和设置可移动bool getCanMove() const;void setCanMove(bool canMove);//获取和设置显示文字QString getText() const;void setText(const QString &text);//获取和设置正常颜色QString getColorNormal() const;void setColorNormal(const QString &colorNormal);//获取和设置报警颜色QString getColorAlarm() const;void setColorAlarm(const QString &colorAlarm);//获取和设置样式ButtonStyle getButtonStyle() const;void setButtonStyle(const ButtonStyle &buttonStyle);//获取和设置颜色ButtonColor getButtonColor() const;void setButtonColor(const ButtonColor &buttonColor);Q_SIGNALS://鼠标单击双击事件void clicked();void doubleClicked();
};#endif //DEVICEBUTTON_H

源码下载

http://www.lryc.cn/news/331214.html

相关文章:

  • 计算机服务器中了helper勒索病毒怎么办,helper勒索病毒解密流程步骤
  • qT 地图显示飞机轨迹
  • 智慧展览馆:基于AI智能识别技术的视频智慧监管解决方案
  • Linux实用性脚本 [bash]
  • Key exchange failed.No compatible key exchange method.
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Asset Store Kit
  • arm架构离线部署docker
  • SpringBoot(48)-使用 SkyWalking 进行分布式链路追踪
  • JS实现双向数据绑定的三种方式
  • Bash相关
  • Flink 流批一体在模型特征场景的使用
  • 06-编辑器
  • 5.3.2 实验2:配置交换机端口安全
  • 【AIGC调研系列】通义千问、文心一言、抖音云雀、智谱清言、讯飞星火的特点分析
  • 【JVM】如何定位、解决内存泄漏和溢出
  • 常见网络问题的概述
  • 说说你对数据结构-树的理解
  • Docker实例
  • python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】
  • 【HTML】标签学习(下.2)
  • os模块篇(十一)
  • 编译amd 的 amdgpu 编译器
  • github 多个账号共享ssh key 的设置方法
  • dm8修改sysdba用户的密码
  • 基于boost准标准库的搜索引擎项目
  • 语言模型进化史(下)
  • 设计模式之旅:工厂模式全方位解析
  • 大数据时代的生物信息学:挖掘生命数据,揭示生命奥秘
  • 微信小程序开发【从入门到精通】——页面导航
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出