更清洁的方式,可以在按下信号时更改按钮的文字颜色&发布

时间:2018-02-05 16:41:42

标签: python python-3.x pyqt pyqt5 qt-signals

按下按钮时,在我的pyqt gui中,按钮的文字颜色会发生变化。当释放按钮时,颜色会恢复原状。

我的代码如下:

    self.ui.pButton_save.pressed.connect(self.save_pressed)
    self.ui.pButton_cancel.pressed.connect(self.cancel_pressed)
    self.ui.pButton_save.released.connect(self.save_released)
    self.ui.pButton_cancel.released.connect(self.cancel_released)

def save_pressed(self):
    self.ui.pButton_save.setStyleSheet("color: white")

def cancel_pressed(self):
    self.ui.pButton_cancel.setStyleSheet("color: white")

def save_released(self):
    self.ui.pButton_save.setStyleSheet("color: green")

def cancel_released(self):
    self.ui.pButton_cancel.setStyleSheet("color: red")

代码工作正常。但正如你所看到的,这个简单的任务有很多行。可能有更清洁(更Pythonic)的方式。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是使用Qt样式表进行处理的方法,它处理状态,如按下的按钮。

self.ui.pButton_save.setStyleSheet(
    "QPushButton:pressed{color: white} QPushButton{color: green}")
self.ui.pButton_cancel.setStyleSheet(
    "QPushButton:pressed{color: white} QPushButton{color: red}")