从前人那里
class Window(QMainWindow, Ui_MainWindow):
def __init__(self, app):
super(QMainWindow, self).__init__()
self.app = app
self.is_start = 0
self.setup_ui()
self.connect_signals()
def setup_ui(self):
self.setMouseTracking(True)
self.setupUi(self)
self.label_change_color('color_label') # 设置指示灯初始颜色
def connect_signals(self):
# 绑定按钮事件
self.btn_start.clicked.connect(self.btn_start_clicked)
def label_change_color(self, label_name, status='init'):
'''
:param label_name: label的objectName
:param status: 状态:[初始,绿灯,红灯]
:return:
'''
color = {'init': '#0B610B', 'green': '#9ACD32', 'red': '#FF4000'}[status]
style = """min-width: 44px;
min-height: 44px;
max-width:44px;
max-height: 44px;
border-radius: 22px;
border:1px solid black;
background:{};
font-size:14px;
color:white
""".format(color)
self.__getattribute__(label_name).setStyleSheet(style)#
# self.color_label.setStyleSheet(style)
def btn_start_clicked(self):
# 开启按钮
if self.is_start == 0:
btn_text = '关闭'
color_text = '绿灯'
status = 'green' # 指示灯状态为绿灯
self.is_start = 1
else:
btn_text = '开启'
color_text = '红灯'
status = 'red' # 指示灯状态为绿灯
self.is_start = 0
self.btn_start.setText(btn_text) # 点击开启后就把按钮修改为关闭按钮,再次点击就设置成开启
self.show_color.setText(color_text)
self.label_change_color('color_label', status) # 设置指示灯初始颜色
copy的一种新方法