pyqt qtableview 添加下拉框控件_Python编程:一个基于PyQt的Led控件库,建议收藏

本文介绍了在Github上发现的一个基于PyQt5的Led指示灯控件库,该库提供了多种形状和颜色选择,便于在Python应用中创建自定义指示灯。文章详细阐述了安装、使用方法以及示例代码,适用于需要显示程序运行状态的场景。
摘要由CSDN通过智能技术生成

675acd7bcf0aa1e501619bd8500f201f.gif

1、控件说明

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

  • 提供了3种外形可供选择,分别为:'capsule', 'circle', 'rectangle'等

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

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

db5dda39105a29a6e71577bd8de89e61.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 Led

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

932f965f43a5787d53d513d994d0113c.png

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

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

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

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

图片和内容源自网络分享,若有侵权,请联系删除!

上海艾磊科技有限公司专门为企业提供IT咨询,IT外包,系统集成,以及各类IT增值服务。其中增值服务包括OFFICE 365云服务,鼎捷企业ERP管理软件,云备份,企业邮箱,无线覆盖,上网行为管理,VPN架设,网络安全服务,INTERNET接入,设备租赁, IP电话服务

211ad16ba13fc6b3322a798b3ed20e96.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值