苏州惊天网站制作网,wordpress o2o,济南建设工程信息网官网,江门网页定制1、控件说明在Github上#xff0c;偶然发现了一个基于PyQt5的第三方Led指示灯控件库#xff0c;使用起来非常方便#xff0c;控件外观也比较漂亮#xff0c;更难能可贵的是作者源代码写得比较简洁#xff0c;仅仅才约200行左右#xff0c;可以作为一个在PyQt中写自定义控…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, parentNone):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_colorLed.{}, shapeLed.{}, builddebug).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_colorgreen, off_colorblack, shaperectangle, buildrelease) 可传入父窗口、初始的亮颜色、灭颜色、形状及状态参数。对于需要在程序开发中使用指示灯的情况如显示各种程序的运行状态等应该说这是一个比较实用的库了。当然由于源代码比较简单你也可以在其基础上进一步修改订制比如添加其它形状、颜色等选项设置以满足自己的项目使用要求。