QLabel做指示灯

从前人那里



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的一种新方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值