按钮激活时改变按钮的颜色

时间:2014-03-26 08:34:57

标签: qt

当按钮处于活动状态时,更改按钮颜色的最佳方法是什么。例如 ;按钮被动:其颜色为灰色按钮激活:其颜色为绿色

2 个答案:

答案 0 :(得分:1)

setStyleSheet("QPushButton { background-color: gray; }\n"
              "QPushButton:enabled { background-color: green; }\n");

您可以在单个按钮上应用此方法,但我建议将其应用于QAppliaction,以便它对所有QPushButton

生效

https://qt-project.org/doc/qt-5/stylesheet-reference.html

答案 1 :(得分:0)

Marek's answer很优雅。如果您需要更改更多属性而不仅仅是颜色,请从PushButton中继承子类并为pressed提供所需的插槽。这是Python中的一个示例(使用PySide),它在按钮上显示两个不同的文本,具体取决于它是否处于活动状态:

class TogglePushButtonWidget(QPushButton):
    """Toggles between on and off text

    Changes color when in on state"""
    def __init__(self, parent, on, off):
        super().__init__(parent)
        self.on = on
        self.off = off
        self.state = True
        self.rotate_state()
        self.pressed.connect(self.toggle_state)    
    def toggle_state(self):
        self.state = not self.state
        if self.state:
            self.setText(self.on)
            self.connect_w.setStyleSheet('background: #bbffbb;')
        else:
            self.setText(self.off)
            self.connect_w.setStyleSheet('')