当按钮处于活动状态时,更改按钮颜色的最佳方法是什么。例如 ;按钮被动:其颜色为灰色按钮激活:其颜色为绿色
答案 0 :(得分:1)
setStyleSheet("QPushButton { background-color: gray; }\n"
"QPushButton:enabled { background-color: green; }\n");
您可以在单个按钮上应用此方法,但我建议将其应用于QAppliaction
,以便它对所有QPushButton
答案 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('')