【Python小知识 - 5】:QGraphicsDropShadowEffect设置按钮阴影

文章目录

  • QGraphicsDropShadowEffect介绍
  • 案例

QGraphicsDropShadowEffect介绍

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_())

鼠标移动到按钮

【Python小知识 - 5】:QGraphicsDropShadowEffect设置按钮阴影_第1张图片

鼠标离开按钮

【Python小知识 - 5】:QGraphicsDropShadowEffect设置按钮阴影_第2张图片

你可能感兴趣的:(PyQt小知识,python,开发语言)