Qt Qml与模糊图像

Qt Qml与模糊图像,qt,qml,Qt,Qml,我想用QML实现模糊效果。 我找到了关于“效果:模糊”的参考资料,但在Qt4.8中这不起作用。 据我所知,这是用C++代码实现的。但是怎么做呢?我不知道你在说什么,但是:Qt附带了一个名为。顾名思义,它使用QML中声明的GPU着色器来实现各种酷炫效果。所有可视QML项所具有的效果属性接受属于QGraphicsEffect子类的所有效果。Qt 4.8附带QGraphicsBlueffect,QGraphicsColorizeEffect,QGraphicsDropShadowEffect和QGra

我想用QML实现模糊效果。 我找到了关于“效果:模糊”的参考资料,但在Qt4.8中这不起作用。
据我所知,这是用C++代码实现的。但是怎么做呢?

我不知道你在说什么,但是:Qt附带了一个名为。顾名思义,它使用QML中声明的GPU着色器来实现各种酷炫效果。

所有可视QML项所具有的
效果
属性接受属于
QGraphicsEffect
子类的所有效果。Qt 4.8附带
QGraphicsBlueffect
QGraphicsColorizeEffect
QGraphicsDropShadowEffect
QGraphicsPacityEffect
。最初,默认情况下,它们在QML中都可用,但在开发过程中(在QtQuick首次公开发行之前),出于性能原因,它们被排除在外。为了使它们再次工作,必须在其应用程序的C++部分中包括以下代码行,例如在主< <代码>函数:

qmlRegisterType<QGraphicsBlurEffect>("Effects",1,0,"Blur");
qmlRegisterType<QGraphicsColorizeEffect>("Effects",1,0,"Colorize");
qmlRegisterType<QGraphicsDropShadowEffect>("Effects",1,0,"DropShadow");
qmlRegisterType<QGraphicsOpacityEffect>("Effects",1,0,"OpacityEffect");
这是可行的,但在许多情况下,所产生的性能确实是不可接受的。然后,您应该尝试在的帮助下实现模糊。通过这种方式,可以使用GLSL着色器程序实现图形效果,从而实现GPU渲染,这比以前基于
QGraphicsEffect
的方法要快得多

import QtQuick 1.1
import Effects 1.0

Item {
    // [...]
    effect: Blur {
        blurRadius: 10.0
    }
}