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.pswp.cn/news/275877.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275877.shtml
英文地址,請注明出處:http://en.pswp.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…