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

c5d8fdde37704a0903b888bfc9e43545.png

1、控件说明

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

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

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

af2605888c014fb53b657580c4d8690f.png

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的窗口。默认运行时显示的为全亮状态,当设置为全灭状态时,如下图所示:

0f073660f6bc22a458c195c92b96da1e.png

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

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

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

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

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

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

相关文章

编写高质量可维护的代码:优雅命名

大家好,我是若川。今天分享一篇关于如何命名更优雅的文章。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列本文首发于政采云前端团队博客:编写高质量可维护的代码:优雅命名ht…

继春晚不宕机后,百度云这次拿下携程大单

今年春晚,百度和央视联手发放高达9亿现金红包的消息,想必让不少人替百度捏了把汗。根据统计,春晚期间,全球观众参与百度App红包互动次数累计达到208亿次,日活从1.6亿冲上3亿关口,这么大的瞬时流量冲击是百度…

mysql int 11 java_mysql中int(11)列的大小(以字节为单位)是多少?

正如其他人所说,列可以存储的最小/最大值以及以字节为单位的存储量仅由类型而不是长度定义 .很多这些答案都说 (11) 部分仅影响显示宽度,这不完全正确,但主要是 .int(2) 与 no zerofill specified 的定义将:仍然接受 100 的值输出…

powerpoint技巧_几乎每个PowerPoint都烂鸡蛋

powerpoint技巧Almost 20 years ago — 2001! — Seth Godin wrote an ebook called Really Bad Powerpoint (and how to avoid it). In that book he detailed all of the things that tend to go wrong in slide presentations.差不多20年前-2001年! —塞斯戈丁(S…

认识mysql总结_从根上理解Mysql - 读后个人总结1-搜云库

初识 MySQL通信介绍MySQL 也是典型的 C / S 模型,分为客户端及服务端,服务端一般部署在远端服务器中,也可以部署至本地,然后客户端跟服务端通信则可以使用依赖网络的 TCP 长连接或 Unix-like 的系统下可以使用 Socket文件的形式通…

白帽子技术分析会话劫持实战讲解

前言通常,大家所说的hack,都是针对一台主机,在获得管理员权限后,就很是得意;其实,真正的hacker是占领整个内部网络。针对内部网络的hack方法比较多,但比较有效的方法非ARP欺骗、DNS欺骗莫属了。…

面试官问:你在项目中做过哪些安全防范措施?

大家好,我是若川。今天分享一篇安全相关的文章。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列如果你被面试官问到这个问题,不要急于描述自己遇到的问题以及如何处理的,你得…

TCP/IP协议族之应用层协议(FTP、TFTP)

文件传送协议FTP: File Transfer Protocol 是因特网上使用得最广泛的文件传送协议。提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权&am…

消灭病毒_消灭遗产

消灭病毒The year was 1995, I was 10 years of age. The number 1 single in the UK was Think Twice by Celine Dion, and Batman Forever was the highest grossing movie across the pond in the States. Manchester United, unfortunately, won their 3rd Premier League …

logcat崩溃_使用logcat抓取Android崩溃日志

一、安装jdkJDK网上教程非常多,此处不再赘述。(好像不装也没关系,未实测)二、工具列表a) adb包(v.1.0.31版本或以上,下文提供下载地址)b) logcat.bat文件(下文制作)三、安装adb(二选一)a) 放到任意位置(推荐)因为adb…

基于 Ubuntu 16.04 LTS 的 KDE neon 到达维护周期

随着 KDE neon 在 Ubuntu 18.04 LTS 发布,开发团队已经决定 放弃维护基于 Ubuntu 16.04 LTS版本,大多数用户预警将希望升级到基于 Ubuntu LTS 的 KDE neno 新版本。“去年KDE neno 被重新定位到 Ubuntu bionic / 18.04上,并且升级已经基本顺利…

真诚推荐7个能助你成长的前端大佬

不得不说,如今比前些年学习资料多很多了。现在的前端公众号也挺多的,这里推荐几个前端大佬运营的公众号,都是聚焦前端垂直领域的优质公众号,关注这些公众号至少可以:1、了解现在前端技术发展情况和未来发展趋势&#x…

Silverlight学习笔记(3):Silverlight的界面布局

在上一篇中讲述了使用VS2010开发Silverlight的一些基础知识,并且讲述了Silverlight的部署和代码安全知识,这一篇主要是讲述如何在Silverlight中摆放界面元素。记得早年前我还在学习Java的时候,当时有两种开发Java SE的方法,一种是…

pov-inc_yourself劳自己-懒惰的设计师的POV和一些Figma

pov-incAre you ready and lazy enough (you will fully understand with continue reading this)? Coffee and tea next to you? Alright. This article is going to (not) kick you in your a**. It will be a bit of ‘lesson learned’, for sure a bit of FIGMA, and a …

Geary 0.13.0 发布,GNOME 3 Email 客户端应用

百度智能云 云生态狂欢季 热门云产品1折起>>> Geary 0.13.0 发布了,Geary 是一个电子邮件应用,用于 GNOME 3 桌面版本,它允许阅读、查找和发送电子,并提供简洁、现代化的界面。这是一个重要的新版本,具有许…

mysql表连接_mysql表连接

在数据库中tableA连接tableB如下:tableA:a1  a21  12  23  24  3tableB:b1 b22  12  23  33  46  5笛卡尔积:select * from tableA, tableB.1  1  2  11  1  2  21  1  3  31  1  3  41  1  6  52…

轻型本地服务器_一小时超轻型漂移机

轻型本地服务器Iwas introduced to the world of Hyper Light Drifter through a series of visions — titans ravage a broken city, a shallow sea is stained red by floating corpses, a skinny dog leads me into the yawning abyss of a pillar in the center of the se…

baidu的服务器数据里面装的都是垃圾!

baidu的服务器数据里面装的都是垃圾! 除了垃圾广告一点价值没有,能不能学学google。 国人天天喊支持国货,但国货很多垃圾,没有人管理这些制造垃圾的人。 转载于:https://www.cnblogs.com/helper/archive/2010/10/12/1848371.html

聊聊前端面试

大家好,我是若川。今天分享一篇面试相关的文章。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列最近 Zoom 国内又开放招聘了,我们组有了前端的 HC,所以我也参加了几场面试。合…

成为自信的node.js开发者(一)

这个博客是我最近整理了过去的文章。 适合阅读的同学 想更进一步深入理解node的同学,如果你已经稍微了解一点点node, 可以用node做一些小demo,并且想更深一步的了解,希望这篇文章可以帮助到你。 不太适合阅读的同学 不太熟悉基本的javascript…