Qt提供了实现模糊效果的类QGraphicsBlurEffect,它的基类是QGraphicsEffect。


QWidget提供了setGraphicsEffect函数用于设置特效,它的参数就是QGraphicsEffect的指针,QGraphicsItem提供了一个同名函数用于设置特效。也就意味着基于QWidget体系的界面和图形视图框架实现模糊效果的方法是一样的。


QGraphicsBlurEffect提供了两个关键槽函数:

  1. setBlurRadius设置模糊的半径,默认值是5,值越大越模糊。

  2. setBlurHints参数是一个枚举BlurHints,用于控制模糊效果的应用。该枚举的三个值:PerformanceHint注重模糊的性能,QualityHint注重模糊的质量,AnimationHint用于模糊半径使用动画时。



测试:在widget中拉四个按钮,设置不同的模糊效果:

image.png

第一个按钮使用默认模糊效果;第二个设置hint为QualityHint;第三个设置模糊半径为1.5,hint设置为AnimationHint(这里意义不大);最后一个不使用模糊。运行后效果:

image.png