pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...
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控件显示库,建议收藏学习...相关推荐
- python rgb led控件_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...
1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...
- led version 2.0 摇摇棒编程软件c 语言,基于单片机控制LED摇摇棒的解决方案 - 全文...
摇摇棒本为开发套件,全部采用直插的器件.显示的LED采用了5mm超高亮30度聚光发光二极管,共 32只.控制芯片采用宏晶单片机STC11F03E,其内部有3K的程序存储空间,256字节的数据存储空间, ...
- 关于自学编程,这些秒办法助你一臂之力(全文干货,建议收藏)
自学编程的方法,建议收藏 这些学习方法如果你能用好,效果绝对立竿见影! 首先我们需要选择自己适合的工具 语言是我们的工具,我们进入IT领域,必然是要选择一门编程语言作为主攻学习.初学编程你会看到很多各 ...
- 推荐一个不错的网站ImportNew,顺便推荐适合有点基础的关于学习Java的书
可能刚学习不是很久,每次看到新的事物就会和挖到金子一样开心,前两天看到一个不错的关于java的网站ImportNew http://www.importnew.com/24310.html 里面东西挺 ...
- 奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程核心技能是你必须要掌握的!!(建议收藏)
大家好,我是冰河~~ 最近有很多学弟学妹问我:冰河,并发编程要学哪些内容呀?我看你CSDN博客的的[精通高并发系列]更新了很多高并发编程的技术文章,你是怎么学习的呢?后面你还会更新吗?啥时候更新完呀? ...
- python怎么显示分数_Python 输入一个数字判断成绩分数等级的方法
Python 输入一个数字判断成绩分数等级的方法 成绩分数等级为: 100-90 A 90-80 B 80-70 C 70-60 D 60以下 F 实现判断分数等级是一个很简单的数学问题,只要你输入的 ...
- python推荐_Python中一个简单的基于内容的推荐引擎
假设,我们需要为一个电子商务网站建立一个推荐引擎. 基本上,你有两种方法:基于内容和协同过滤.我们将看看每种方法的优缺点,然后深入一个基于内容的引擎的一个简单的实现(准备在Heroku之上部署!). ...
- 一个不错的基于Spring boot+Security+Redis+MySql实现权限登录和反爬虫的脚手架
介绍 一个基于Spring boot 2.4.2.JDK 1.8.Security.防恶意请求技术实现的前后端分离的脚手架,可以为开发人员省去前期框架调研和搭建的成本. 软件架构 Spring boo ...
- 【Arduino】TFT LCD显示屏显示gif小电视太空人动图(基于Arduino框架ESP8266/ESP32、TFT_eSPI库、使用python脚本GIF转十六进制文件)
前言 之前使用ESP32 来控制TFT屏幕显示动图时,找到现有的工具,需要先将动图gif格式一帧帧转为jpg格式,再将一帧帧的jgp转为hex十六进制格式,整个过程好麻烦.现用python写了脚本 ...
最新文章
- TabLayout+ViewPager+Fragment中Fragment的可见和不可见问题
- 在视图控制器之间传递数据
- 高并发系统设计的 2 个要点,一定要看!
- 01 | 顶层设计:微服务生态与 Spring Cloud Alibaba
- 声光调制器实验研究_脉冲光抽运原子钟研究取得进展
- 螺钉装弹垫平垫机器人_【经验总结】什么时候用平垫,什么时候用弹垫?
- java开发环境搭建 pdf_01搭建java web开发环境.pdf
- 【Computer Organization】The Core Design Thinking of single cycle CPU
- [JSOI2018]潜入行动
- Unity3D(UE4)加载倾斜摄影数据OSGB格式
- 【Flink】A Typical reason for AskTimeOutException is that the recipientactor
- timestamp ---自动更新修改时间 与 记录首次插入时间
- J.U.C - 其它组件
- iphone模拟器_应用日报 | Xcode 现身 5.4 英寸 iPhone 模拟器,和平精英上线特斯拉皮肤...
- web安全day27:linux下调整文件及目录权限
- Linux 集群搭建
- 数位板软件测试工资,一位强迫症患者对板子的深度剖析,绘王H950P数位板测评...
- 模拟鼠标/键盘 .NET实现
- 网络安全——防火墙详解
- 【1】DICOM图像格式
热门文章
- 树莓派超声波模块测距
- ios3怎么取消长按弹出菜单_苹果:iOS13取消3D-Touch重压改为长按只是个BUG~
- 解释一下Spring支持的几种bean的作用域
- 解决java.net.ConnectException: Connection refused:connect报错
- 类变量和实例变量的区别是什么?
- 操作系统:Windows映射网络文件夹的方法介绍
- 100个网络基础知识,赶紧收藏吧!
- MongoDB常用语句
- html自动滑动轮播代码,html+css+js 实现自动滑动轮播图
- oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码