在QPushbutton 按下时添加光晕
时间: 2024-05-04 14:15:18 浏览: 21
可以使用QGraphicsEffect类实现光晕效果。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QPushButton, QGraphicsColorizeEffect
from PyQt5.QtGui import QColor
import sys
class MyButton(QPushButton):
def __init__(self):
super().__init__()
self.effect = QGraphicsColorizeEffect(self)
self.effect.setColor(QColor(255, 255, 255, 150))
self.effect.setBlurRadius(50)
self.setGraphicsEffect(self.effect)
self.clicked.connect(self.addGlow)
def addGlow(self):
self.effect.setStrength(1)
self.effect.setBlurRadius(50)
self.effect.setEnabled(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
button = MyButton()
button.setText("Click me")
button.show()
sys.exit(app.exec_())
```
在这个例子中,我们定义了一个MyButton类,它继承自QPushButton。在MyButton的构造函数中,我们创建了一个QGraphicsColorizeEffect对象,设置了光晕的颜色和模糊半径,然后将其设置为按钮的图形效果。
当按钮被点击时,我们通过调用addGlow()方法来启用光晕效果。在这个方法中,我们设置光晕的强度和模糊半径,并将效果启用。效果将在一定时间后自动消失。