在按下和释放信号时更改按钮文本颜色的更简洁方法
Cleaner way for changing button's text color on signal pressed & released
在我的 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)的方式来做到这一点。有什么建议吗?
这是使用 Qt Style Sheet 实现的方法,Qt Style 处理按下按钮等状态。
self.ui.pButton_save.setStyleSheet(
"QPushButton:pressed{color: white} QPushButton{color: green}")
self.ui.pButton_cancel.setStyleSheet(
"QPushButton:pressed{color: white} QPushButton{color: red}")
在我的 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)的方式来做到这一点。有什么建议吗?
这是使用 Qt Style Sheet 实现的方法,Qt Style 处理按下按钮等状态。
self.ui.pButton_save.setStyleSheet(
"QPushButton:pressed{color: white} QPushButton{color: green}")
self.ui.pButton_cancel.setStyleSheet(
"QPushButton:pressed{color: white} QPushButton{color: red}")