1、控件说明

在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在PyQt中写自定义控件方法的非常好的学习例子。这个控件具有以下特点:

  • 提供了3种外形可供选择,分别为:'capsule', 'circle', 'rectangle'等
  • 提供了7种颜色可供选择,分别为:'blue', 'green', 'orange', 'purple', 'red', 'yellow'等

不同的外形与颜色选择下Led指示灯外观样子如下图所示:

2、安装及使用方法

在Python下使用pip安装即可:

pip install pyqt-led 

在代码中使用时,只需使用以下语句导入该库的LED类即可:

from pyqt_led import Led  

在该库中,提供了几个主要的方法函数,包括set_on_color、set_off_color、set_shape、turn_on、turn_off等函数,分别设置Led的开/关颜色、形状及设置开、关状态等。

3、使用例子

一个简单的例子,代码如下图所示:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import numpy as np
from pyqt_led import Ledclass Demo(QWidget):def __init__(self, parent=None):QWidget.__init__(self, parent)self._shape = np.array(['capsule', 'circle', 'rectangle'])self._color = np.array(['blue', 'green', 'orange', 'purple', 'red','yellow'])self._layout = QGridLayout(self)self._create_leds()self._arrange_leds()self.resize(400, 200)self.setWindowTitle('pyqt-led Demo')def keyPressEvent(self, e):if e.key() == Qt.Key_Escape:self.close()def _create_leds(self):for s in self._shape:for c in self._color:exec('self._{}_{} = Led(self, on_color=Led.{}, shape=Led.{}, build="debug")'.format(s, c, c, s))exec('self._{}_{}.setFocusPolicy(Qt.NoFocus)'.format(s, c))exec('self._{}_{}.turn_on(True)'.format(s, c))def _arrange_leds(self):for r in range(3):for c in range(6):exec('self._layout.addWidget(self._{}_{}, {}, {}, 1, 1, Qt.AlignCenter)'.format(self._shape[r], self._color[c], r, c))app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())

运行这个程序后,即可出现本文开头所示的在一个窗口上显示了不同形状、不同颜色的Led的窗口。默认运行时显示的为全亮状态,当设置为全灭状态时,如下图所示:

在代码中,Led类实例化时,其构造函数原型如下所示:

Led(parent, on_color=green, off_color=black, shape=rectangle, build='release') 

可传入父窗口、初始的亮颜色、灭颜色、形状及状态参数。

对于需要在程序开发中使用指示灯的情况,如显示各种程序的运行状态等,应该说这是一个比较实用的库了。当然,由于源代码比较简单,你也可以在其基础上进一步修改订制,比如添加其它形状、颜色等选项设置,以满足自己的项目使用要求。

pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...相关推荐

  1. python rgb led控件_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

    1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...

  2. led version 2.0 摇摇棒编程软件c 语言,基于单片机控制LED摇摇棒的解决方案 - 全文...

    摇摇棒本为开发套件,全部采用直插的器件.显示的LED采用了5mm超高亮30度聚光发光二极管,共 32只.控制芯片采用宏晶单片机STC11F03E,其内部有3K的程序存储空间,256字节的数据存储空间, ...

  3. 关于自学编程,这些秒办法助你一臂之力(全文干货,建议收藏)

    自学编程的方法,建议收藏 这些学习方法如果你能用好,效果绝对立竿见影! 首先我们需要选择自己适合的工具 语言是我们的工具,我们进入IT领域,必然是要选择一门编程语言作为主攻学习.初学编程你会看到很多各 ...

  4. 推荐一个不错的网站ImportNew,顺便推荐适合有点基础的关于学习Java的书

    可能刚学习不是很久,每次看到新的事物就会和挖到金子一样开心,前两天看到一个不错的关于java的网站ImportNew http://www.importnew.com/24310.html 里面东西挺 ...

  5. 奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程核心技能是你必须要掌握的!!(建议收藏)

    大家好,我是冰河~~ 最近有很多学弟学妹问我:冰河,并发编程要学哪些内容呀?我看你CSDN博客的的[精通高并发系列]更新了很多高并发编程的技术文章,你是怎么学习的呢?后面你还会更新吗?啥时候更新完呀? ...

  6. python怎么显示分数_Python 输入一个数字判断成绩分数等级的方法

    Python 输入一个数字判断成绩分数等级的方法 成绩分数等级为: 100-90 A 90-80 B 80-70 C 70-60 D 60以下 F 实现判断分数等级是一个很简单的数学问题,只要你输入的 ...

  7. python推荐_Python中一个简单的基于内容的推荐引擎

    假设,我们需要为一个电子商务网站建立一个推荐引擎. 基本上,你有两种方法:基于内容和协同过滤.我们将看看每种方法的优缺点,然后深入一个基于内容的引擎的一个简单的实现(准备在Heroku之上部署!). ...

  8. 一个不错的基于Spring boot+Security+Redis+MySql实现权限登录和反爬虫的脚手架

    介绍 一个基于Spring boot 2.4.2.JDK 1.8.Security.防恶意请求技术实现的前后端分离的脚手架,可以为开发人员省去前期框架调研和搭建的成本. 软件架构 Spring boo ...

  9. 【Arduino】TFT LCD显示屏显示gif小电视太空人动图(基于Arduino框架ESP8266/ESP32、TFT_eSPI库、使用python脚本GIF转十六进制文件)

    前言 ​ 之前使用ESP32 来控制TFT屏幕显示动图时,找到现有的工具,需要先将动图gif格式一帧帧转为jpg格式,再将一帧帧的jgp转为hex十六进制格式,整个过程好麻烦.现用python写了脚本 ...

最新文章

  1. TabLayout+ViewPager+Fragment中Fragment的可见和不可见问题
  2. 在视图控制器之间传递数据
  3. 高并发系统设计的 2 个要点,一定要看!
  4. 01 | 顶层设计:微服务生态与 Spring Cloud Alibaba
  5. 声光调制器实验研究_脉冲光抽运原子钟研究取得进展
  6. 螺钉装弹垫平垫机器人_【经验总结】什么时候用平垫,什么时候用弹垫?
  7. java开发环境搭建 pdf_01搭建java web开发环境.pdf
  8. 【Computer Organization】The Core Design Thinking of single cycle CPU
  9. [JSOI2018]潜入行动
  10. Unity3D(UE4)加载倾斜摄影数据OSGB格式
  11. 【Flink】A Typical reason for AskTimeOutException is that the recipientactor
  12. timestamp ---自动更新修改时间 与 记录首次插入时间
  13. J.U.C - 其它组件
  14. iphone模拟器_应用日报 | Xcode 现身 5.4 英寸 iPhone 模拟器,和平精英上线特斯拉皮肤...
  15. web安全day27:linux下调整文件及目录权限
  16. Linux 集群搭建
  17. 数位板软件测试工资,一位强迫症患者对板子的深度剖析,绘王H950P数位板测评...
  18. 模拟鼠标/键盘 .NET实现
  19. 网络安全——防火墙详解
  20. 【1】DICOM图像格式

热门文章

  1. 树莓派超声波模块测距
  2. ios3怎么取消长按弹出菜单_苹果:iOS13取消3D-Touch重压改为长按只是个BUG~
  3. 解释一下Spring支持的几种bean的作用域
  4. 解决java.net.ConnectException: Connection refused:connect报错
  5. 类变量和实例变量的区别是什么?
  6. 操作系统:Windows映射网络文件夹的方法介绍
  7. 100个网络基础知识,赶紧收藏吧!
  8. MongoDB常用语句
  9. html自动滑动轮播代码,html+css+js 实现自动滑动轮播图
  10. oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码