QGraphicsDropShadowEffect
是 PyQt 中的一个类,它可以在图形对象周围产生阴影效果,常用于美化界面。通过调整阴影的偏移、颜色、模糊度等参数,可以实现不同风格的阴影效果。同时,该类还支持设置阴影效果的 QRectF
范围,方便进行大小调整
当鼠标移动到按钮时,出现浅蓝色阴影,离开时阴影消失。
from PyQt5.QtWidgets import QApplication, QPushButton, QVBoxLayout, QWidget, QGraphicsDropShadowEffect
from PyQt5.QtGui import QColor
import sys
class PushButton(QPushButton):
def __init__(self, parent=None):
super().__init__(parent)
self.setText('按钮')
# 鼠标进入按钮时显示阴影
def enterEvent(self, evt):
# 创建QGraphicsDropShadowEffect对象
shadow = QGraphicsDropShadowEffect()
# 设置阴影颜色为红色
shadow.setColor(QColor(62, 134, 160))
# 设置阴影的偏移量
shadow.setOffset(20, 0) # (x, y)
# 设置阴影的模糊半径
shadow.setBlurRadius(15)
# 将阴影应用于按钮
self.setGraphicsEffect(shadow)
# 鼠标离开按钮时取消阴影
def leaveEvent(self, evt):
self.setGraphicsEffect(None) # 将 QGraphicsDropShadowEffect 从按钮中移除,达到去除阴影的效果
if __name__ == '__main__':
app = QApplication(sys.argv)
window = QWidget()
window.resize(200, 200)
button = PushButton(window)
button.move(50, 50)
window.show()
sys.exit(app.exec_())
鼠标移动到按钮
鼠标离开按钮