Qt中用QLabel创建状态灯

首先ui设计中分别创建了4个大灯和4个小灯。

编辑.h文件

#ifndef LED_H
#define LED_H#include <QWidget>
#include <QLabel>QT_BEGIN_NAMESPACE
namespace Ui { class Led; }
QT_END_NAMESPACEclass Led : public QWidget
{Q_OBJECTpublic:Led(QWidget *parent = nullptr);~Led();private:void initData();void initUi();private:Ui::Led *ui;QVector<QString> color_s;   ///< 存放设置小灯的样式字符串QVector<QString> color_b;   ///< 存放设置大灯的样式字符串enum colorType {GREY = 0, RED, GREEN, YELLOW};  ///< 灯颜色枚举
};
#endif // LED_H

编辑.cpp文件

#include "led.h"
#include "ui_led.h"Led::Led(QWidget *parent): QWidget(parent), ui(new Ui::Led)
{ui->setupUi(this);initData();initUi();
}Led::~Led()
{delete ui;
}void Led::initData()
{QString comm_s("min-width:20px;min-height:20px;max-width:20px;max-height:20px;border-radius:13px;border:3px rgb(147, 147, 147);border-style:outset;");color_s.push_back(comm_s + QString("background-color:rgb(195, 195, 195);"));    ///< GREYcolor_s.push_back(comm_s + QString("background-color:rgb(255, 0, 0);"));        ///< REDcolor_s.push_back(comm_s + QString("background-color:rgb(0, 255, 0);"));        ///< GREENcolor_s.push_back(comm_s + QString("background-color:rgb(255, 255, 0);"));      ///< YELLOWQString comm_b("min-width:34px;min-height:34px;max-width:34px;max-height:34px;border-radius:20px;border:3px rgb(147, 147, 147);border-style:outset;");color_b.push_back(comm_b + QString("background-color:rgb(195, 195, 195);"));    ///< GREYcolor_b.push_back(comm_b + QString("background-color:rgb(255, 0, 0);"));        ///< REDcolor_b.push_back(comm_b + QString("background-color:rgb(0, 255, 0);"));        ///< GREENcolor_b.push_back(comm_b + QString("background-color:rgb(255, 255, 0);"));      ///< YELLOW
}void Led::initUi()
{ui->leds1->setStyleSheet(color_s[colorType::GREY]);ui->ledb1->setStyleSheet(color_b[colorType::GREY]);ui->leds2->setStyleSheet(color_s[colorType::RED]);ui->ledb2->setStyleSheet(color_b[colorType::RED]);ui->leds3->setStyleSheet(color_s[colorType::GREEN]);ui->ledb3->setStyleSheet(color_b[colorType::GREEN]);ui->leds4->setStyleSheet(color_s[colorType::YELLOW]);ui->ledb4->setStyleSheet(color_b[colorType::YELLOW]);
}

效果这样:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC数据绑定和响应——复杂数据绑定(四)JSON数据绑定

一、消息转换器—HttpMessageConverter接口 客户端不同的请求&#xff0c;HttpServletRequest中数据的MediaType可能会不同&#xff0c;如果想将HttpServletRequest中的数据转换成指定对象&#xff0c;或者将对象转换成指定格式的数据&#xff0c;就需要使用对应的消息转换器来…

服务器硬件以及RAID配置

目录 一、RAID磁盘阵列原理&#xff08;嘎嘎重要&#xff09; 1、RAID的概述 2、常用的RAID 2.1、RAID 0 2.2、RAID 1 2.3、RAID 5 2.5、RAID 10 3、阵列卡介绍 二、建立软件RAID磁盘阵列 1、添加硬盘 2、使用fdisk分区&#xff0c;类型为fd 3、mdata命令使用参数 …

安全与加密常识(3)什么是数字签名和数字证书

文章目录 数字签名工作原理关键特点应用实例 数字证书数字证书和数字签名趣味实例 数字签名 数字签名是一种通过密码运算生成的数据&#xff0c;用于验证信息的完整性和来源&#xff0c;确保数据在传输过程中未被篡改&#xff0c;同时提供发送者的身份认证和防止抵赖的功能。它…

Qt: QPushButton 按钮实现 上图标下文字

效果如下&#xff1a; 实现有如下几种方式&#xff1a; 1. 使用 QPushButton 设置 setStyleSheet 例&#xff1a; ui->recorder->setStyleSheet("QPushButton{"\"border: 1px solid #00d2ff; "\"min-height: 60px; "\"col…

python多继承的3C算法

python多继承的3C算法 有很多地方都说python多继承的继承顺序&#xff0c;是按照深度遍历的方式&#xff0c;其实python多继承顺序的算法&#xff0c;不是严格意义上的深度遍历&#xff0c;而是基于深度遍历基础上优化出一种叫3C算法 python多继承的深度遍历 class C:def ru…

MySQL高级-MVCC-原理分析(RR级别)

文章目录 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView2、总结 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView 而RR 是可重复读&#xff0c;在一个事务中&…

Django 配置静态文件

1&#xff0c;DebugTrue 调试模式 Test/Test/settings.py DEBUG True...STATICFILES_DIRS [os.path.join(BASE_DIR, static),] STATIC_URL /static/ 1.1 创建静态文件 Test/static/6/images/Sni1.png 1.2 添加视图函数 Test/app6/views.py from django.shortcuts impor…

uniapp,uni-fab组件拖动属性,替代方案

文章目录 1. 背景2. 替代方案2.1 方案一2.2 方案二 参考 1. 背景 最近基于uniapp开发一款设备参数调试的APP软件&#xff0c;其中有使用到悬浮按钮&#xff0c;快速开发阶段&#xff0c;为了能尽快上线&#xff0c;直接使用了uni-ui的扩展组件uni-fab&#xff0c;参考【1】&am…

C++ 设计模式之迭代器模式

C 设计模式之迭代器模式 简介 1、迭代器模式&#xff08;Iterator&#xff09;是一种行为型设计模式&#xff0c;它允许我们顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露该对象的内部表示。迭代器模式提供了一种方法来遍历容器&#xff08;容器对象&#xff0c;如…

Configure C/C++ debugging

Configure C/C debugging launch.json 文件用于在 Visual Studio Code 中配置调试器。 Visual Studio Code 会生成一个 launch.json (位于项目的 .vscode 文件夹下),其中几乎包含了所有必需的信息。要开始调试,您需要填写 program 字段,指定要调试的可执行文件的路径。这必须…

如何通过流式渲染提升用户体验?

什么是流式渲染&#xff1f; 流式渲染的核心理念是将 HTML 文档分割成小块&#xff08;chunk&#xff09;&#xff0c;并逐步地发送给客户端&#xff0c;而非等待整个页面完整生成后再进行传输。这种方式能够极大地提升用户的初始加载体验&#xff0c;特别是在网络条件不佳或者…

【从零开始学架构 架构基础】四 架构设计的复杂度来源:可扩展性复杂度来源

架构设计的复杂度来源其实就是架构设计要解决的问题&#xff0c;主要有如下几个&#xff1a;高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键&#xff0c;就是新旧技术之间不是完全的替代关系&#xff0c;有交叉&#xff0c;有各自的特点&#xff0c;所以才需要具体…

新书速览|Linux C与C++一线开发实践

《Linux C与C一线开发实践》 本书内容 Linux C/C编程在Linux应用程序开发中占有重要的地位&#xff0c;掌握这项技术将在就业竞争中立于不败之地。《Linux C与C一线开发实践》内容针对初中级读者&#xff0c;贴近软件公司一线开发实践。全书厚达620多页&#xff0c;知识点丰富…

Java中String和StringBuilder的区别

当然可以&#xff0c;我们可以通过面试问答的形式来探讨String和StringBuilder的区别。 面试官&#xff1a;请解释一下Java中String和StringBuilder的区别。 面试回答&#xff1a; 1. 不可变性&#xff08;Immutability&#xff09; String&#xff1a;String对象是不可变的…

微信小程序添加点击事件

在微信小程序中&#xff0c;给<view>组件添加点击事件非常直接&#xff0c;你可以使用bindtap属性来绑定一个事件处理函数。下面是添加点击事件的基本步骤和示例代码&#xff1a; 步骤&#xff1a; 在WXML文件中&#xff1a;给需要添加点击事件的<view>标签添加bi…

第六周周报

摘要 本周重点跟着网课学习了pytorch框架下张量的各种常用操作API&#xff0c;为后面跑模型做准备&#xff0c;因为看的视频比较偏向原理&#xff0c;现在对张量有了一个新的认识。其次在时序的研究上&#xff0c;最近我在看图神经网络跟时序结合的方向&#xff0c;所以本周学…

Qt自定义类型

概述 在使用Qt创建用户界面时&#xff0c;特别是那些具有特殊控件和特性的界面时&#xff0c;开发人员有时需要创建新的数据类型&#xff0c;以便与Qt现有的值类型集一起使用或代替它们。 QSize、QColor和QString等标准类型都可以存储在QVariant对象中&#xff0c;作为基于qo…

51单片机第6步_stdlib.h库函数

本章重点学习stdlib.h库函数。 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdlib.h> //float atof (char *s1); //参数s1字符串可包含正负号,小数点或E(e)来表示指数部分,如123.456或123e-2; //若首字符是非数据字符,或为正负号…

es6语法复习一

es6语法 1.var 变量提升 2.let 不存在变量提升&#xff0c;只能定义一次 3.const 先定义再使用&#xff0c;定义好来不能修改 4.解构赋值 [a,b,c][1,2,3],{a,b,c}{a:1,b:2,c:3} 5.模版字符串 let aaa; ${a} is ok 6.对象简化写法 const school{ name, change, improve(){ cons…

力扣2438.二的幂数组中查询范围内的乘积

力扣2438.二的幂数组中查询范围内的乘积 lowbit求所有2的幂 accumulate函数(begin,end,start,way)求和/积的方式求积并取模 const int N 1e9 7;class Solution {public:int lowbit(int x){return x & -x;}vector<int> productQueries(int n, vector<vector&l…