《QT实用小工具·十八》高亮发光按钮控件

2024-04-07 23:28

本文主要是介绍《QT实用小工具·十八》高亮发光按钮控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

该项目实现了高亮发光按钮控件

  1. 可设置文本,居中显示。
  2. 可设置文本颜色。
  3. 可设置外边框渐变颜色。
  4. 可设置里边框渐变颜色。
  5. 可设置背景色。
  6. 可直接调用内置的设置 绿色、红色、黄色、黑色、蓝色 等公有槽函数。
  7. 可设置是否在容器中可移动,当成一个对象使用。
  8. 可设置是否显示矩形。
  9. 可设置报警颜色、非报警颜色。
  10. 可控制启动报警和停止报警,报警时闪烁。

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

项目部分代码如下:

#ifndef LIGHTBUTTON_H
#define LIGHTBUTTON_H/*** 高亮发光按钮控件 * 1. 可设置文本,居中显示。* 2. 可设置文本颜色。* 3. 可设置外边框渐变颜色。* 4. 可设置里边框渐变颜色。* 5. 可设置背景色。* 6. 可直接调用内置的设置 绿色、红色、黄色、黑色、蓝色 等公有槽函数。* 7. 可设置是否在容器中可移动,当成一个对象使用。* 8. 可设置是否显示矩形。* 9. 可设置报警颜色、非报警颜色。* 10. 可控制启动报警和停止报警,报警时闪烁。*/#include <QWidget>#ifdef quc
class Q_DECL_EXPORT LightButton : public QWidget
#else
class LightButton : public QWidget
#endif{Q_OBJECTQ_PROPERTY(QString text READ getText WRITE setText)Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor)Q_PROPERTY(QColor alarmColor READ getAlarmColor WRITE setAlarmColor)Q_PROPERTY(QColor normalColor READ getNormalColor WRITE setNormalColor)Q_PROPERTY(QColor borderOutColorStart READ getBorderOutColorStart WRITE setBorderOutColorStart)Q_PROPERTY(QColor borderOutColorEnd READ getBorderOutColorEnd WRITE setBorderOutColorEnd)Q_PROPERTY(QColor borderInColorStart READ getBorderInColorStart WRITE setBorderInColorStart)Q_PROPERTY(QColor borderInColorEnd READ getBorderInColorEnd WRITE setBorderInColorEnd)Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor)Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove)Q_PROPERTY(bool showRect READ getShowRect WRITE setShowRect)Q_PROPERTY(bool showOverlay READ getShowOverlay WRITE setShowOverlay)Q_PROPERTY(QColor overlayColor READ getOverlayColor WRITE setOverlayColor)public:explicit LightButton(QWidget *parent = 0);protected:bool eventFilter(QObject *watched, QEvent *event);void paintEvent(QPaintEvent *);void drawBorderOut(QPainter *painter);void drawBorderIn(QPainter *painter);void drawBg(QPainter *painter);void drawText(QPainter *painter);void drawOverlay(QPainter *painter);private:QString text;               //文本QColor textColor;           //文字颜色QColor alarmColor;          //报警颜色QColor normalColor;         //正常颜色QColor borderOutColorStart; //外边框渐变开始颜色QColor borderOutColorEnd;   //外边框渐变结束颜色QColor borderInColorStart;  //里边框渐变开始颜色QColor borderInColorEnd;    //里边框渐变结束颜色QColor bgColor;             //背景颜色bool showRect;              //显示成矩形bool canMove;               //是否能够移动bool showOverlay;           //是否显示遮罩层QColor overlayColor;        //遮罩层颜色bool pressed;               //鼠标是否按下QPoint lastPoint;           //鼠标最后按下坐标bool isAlarm;               //是否报警QTimer *timerAlarm;         //定时器切换颜色public://默认尺寸和最小尺寸QSize sizeHint() const;QSize minimumSizeHint() const;//获取和设置文本QString getText() const;void setText(const QString &text);//获取和设置文本颜色QColor getTextColor() const;void setTextColor(const QColor &textColor);//获取和设置报警颜色QColor getAlarmColor() const;void setAlarmColor(const QColor &alarmColor);//获取和设置正常颜色QColor getNormalColor() const;void setNormalColor(const QColor &normalColor);//获取和设置外边框渐变颜色QColor getBorderOutColorStart() const;void setBorderOutColorStart(const QColor &borderOutColorStart);QColor getBorderOutColorEnd() const;void setBorderOutColorEnd(const QColor &borderOutColorEnd);//获取和设置里边框渐变颜色QColor getBorderInColorStart() const;void setBorderInColorStart(const QColor &borderInColorStart);QColor getBorderInColorEnd() const;void setBorderInColorEnd(const QColor &borderInColorEnd);//获取和设置背景色QColor getBgColor() const;void setBgColor(const QColor &bgColor);//获取和设置是否可移动bool getCanMove() const;void setCanMove(bool canMove);//获取和设置是否显示矩形bool getShowRect() const;void setShowRect(bool showRect);//获取和设置是否显示遮罩层bool getShowOverlay() const;void setShowOverlay(bool showOverlay);//获取和设置遮罩层颜色QColor getOverlayColor() const;void setOverlayColor(const QColor &overlayColor);public Q_SLOTS://设置为绿色void setGreen();//设置为红色void setRed();//设置为黄色void setYellow();//设置为黑色void setBlack();//设置为灰色void setGray();//设置为蓝色void setBlue();//设置为淡蓝色void setLightBlue();//设置为淡红色void setLightRed();//设置为淡绿色void setLightGreen();//设置报警闪烁void startAlarm();void stopAlarm();void alarm();Q_SIGNALS://单击信号void clicked();
};#endif // LIGHTBUTTON_H

源码下载

这篇关于《QT实用小工具·十八》高亮发光按钮控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883966

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

10个好用的AI写作工具【亲测免费】

1. 光速写作 传送入口:http://u3v.cn/6hXWYa AI打工神器,一键生成文章&ppt 2. 讯飞写作 传送入口:http://m6z.cn/5ODiSw 3. 讯飞绘文 传送入口:https://turbodesk.xfyun.cn/?channelid=gj3 4. AI排版助手 传送入口:http://m6z.cn/6ppnPn 5. Kim