如何在Qt中绘制模糊的透明背景

时间:2018-02-09 13:01:16

标签: c++ qt qt5

我有一个自定义的QGraphicsItem类,我在其中重写了paint事件,如下所示

<DataGrid Name="dtgDecodedMsg" ... SelectionChanged="dtgDecodedMsg_SelectionChanged">
...

我需要用blured透明效果填充rec区域。这样我就可以看到MyRectangle的背景为blured。

1 个答案:

答案 0 :(得分:1)

没有必要重新发明轮子this document支持QGraphicsItem,并且可用的效果是QGraphicsEffect,所以你只需要使用它:

QGraphicsBlurEffect *effect = new QGraphicsBlurEffect;
item->setGraphicsEffect(effect);

输出:

QGraphicsBlurEffect

enter image description here

注意:如果要创建新效果,正确的方法是从QGraphicsEffect继承并覆盖draw()方法,因此没有必要创建一个对每个实现相同效果的类项目