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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按钮激活时改变按钮的颜色相关的知识,希望对你有一定的参考价值。

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

答案
setStyleSheet("QPushButton { background-color: gray; }
"
              "QPushButton:enabled { background-color: green; }
");

您可以在单个按钮上应用此方法,但我建议将其应用于QAppliaction,这样它将对所有QPushButtons产生影响

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

另一答案

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('')

以上是关于按钮激活时改变按钮的颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用 tkinter 悬停时更改按钮颜色

离子4改变按钮的大小和颜色问题

VS2008如何用代码改变按钮背景颜色,字体大小和颜色

不断改变android按钮颜色

两个按钮的背景颜色都改变了

java改变按钮颜色