在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在PyQt中写自定义控件方法的非常好的学习例子。这个控件具有以下特点:
提供了3种外形可供选择,分别为:'capsule', 'circle', 'rectangle'等
提供了7种颜色可供选择,分别为:'blue', 'green', 'orange', 'purple', 'red', 'yellow'等
不同的外形与颜色选择下Led指示灯外观样子如下图所示:
在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的开/关颜色、形状及设置开、关状态等。
一个简单的例子,代码如下图所示:
sysPyQt5.QtWidgets *PyQt5.QtGui *PyQt5.QtCore *numpy nppyqt_led Led(QWidget): (, parent=): QWidget.(, parent) ._shape = np.array([, , ]) ._color = np.array([, , , , , ]) ._layout = QGridLayout() ._create_leds() ._arrange_leds() .resize(, ) .setWindowTitle() (, e): e.key() == Qt.Key_Escape: .close() (): s ._shape: c ._color: (.format(s, c, c, s)) (.format(s, c)) (.format(s, c)) (): r (): c (): (.format(._shape[r], ._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')
可传入父窗口、初始的亮颜色、灭颜色、形状及状态参数。
对于需要在程序开发中使用指示灯的情况,如显示各种程序的运行状态等,应该说这是一个比较实用的库了。当然,由于源代码比较简单,你也可以在其基础上进一步修改订制,比如添加其它形状、颜色等选项设置,以满足自己的项目使用要求。
联系客服