实际中要实时获取设备状态并在软件上以状态灯形式展示,一个比较简单快捷的方法,是用pyqt的标签,将标签修改为圆形,然后以不同颜色填充
1、状态灯的设计,将label的尺寸设置为正方形,当前使用的是长:20,宽:20。然以20为直径,10以半径将setStyleSheet设置为圆型,并且默认为红色,
代码如下
self.StdWlrStatus = QtWidgets.QLabel(self.centralwidget) #新建一个label self.StdWlrStatus.setGeometry(QtCore.QRect(35, 110, 20, 20)) #label的尺寸设置为20X20 self.StdWlrStatus.setStyleSheet("border-radius:10px;background-color:red")#label为圆形红色
2、根据条件,判断设备状态,然后给状态灯赋以不同的颜色
def StdStatusLightSet(self,ThreadSingDic): SheetStrHead="border-radius:10px;background-color:" if ThreadSingDic["Connect"]==1: #判断MWR设备是否在线,1为在线,0为离线,-1为连接过程中出现异常 WLRStatus="green"
else: WLRStatus = "red"
self.StdWlrStatus.setStyleSheet(SheetStrHead+WLRStatus)
状态灯实际使用效果