QGraphicsBlurEffects 仅在父小部件上

QGraphicsBlurEffect on parent widget only

本文关键字:小部 QGraphicsBlurEffects      更新时间:2023-10-16

我正在尝试在另一个小部件上显示一个小部件,并像这样仅在父项上应用QGraphicsBlurEffect

MyWidget::MyWidget(QWidget* parent) :
QWidget(parent),
{
    QGraphicsBlurEffect* effect = new QGraphicsBlurEffect(this);
    parent->setGraphicsEffect(effect);
}

但结果是两个小部件都是模糊的。

它就像效果传播给孩子们一样。

如何仅将模糊效果应用于父项?

最好的选择是打破父子关系。没有像QGraphicsItem QGraphicsEffects ItemIgnoresParentOpacity那样的旗帜。

另一种解决方案是复制 ItemIgnoresParentOpacity 机制并为 QGraphicsEffect 实现它,但我认为这不值得麻烦。