このページでは

Glow QML Type

ソース画像をぼかして色付けし、元の画像の背後に配置することで、ソースが光っているような印象を与えます。詳細...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

プロパティ

詳細説明

出典適用されたエフェクト

黒い背景に白い蝶

縁が光る蝶

例

以下の例は、エフェクトの適用方法を示しています。

import QtQuick
import Qt5Compat.GraphicalEffects

Item {
    width: 300
    height: 300

    Rectangle {
        anchors.fill: parent
        color: "black"
    }

    Image {
        id: butterfly
        source: "images/butterfly.png"
        sourceSize: Qt.size(parent.width, parent.height)
        smooth: true
        visible: false
    }

    Glow {
        anchors.fill: butterfly
        radius: 8
        color: "white"
        source: butterfly
    }
}

プロパティのドキュメント

cached : alias

このプロパティを使用すると、エフェクトの出力ピクセルをキャッシュして、レンダリング性能を向上させることができます。

ソースまたはエフェクトのプロパティが変更されるたびに、キャッシュ内のピクセルを更新する必要があります。エフェクトの出力を保存するために追加のメモリバッファが必要となるため、メモリ消費量が増加します。

ソースやエフェクトのプロパティがアニメーション化される場合は、キャッシュを無効にすることをお勧めします。

デフォルトでは、このプロパティは「false 」に設定されています。

color : alias

このプロパティは、グローに使用されるRGBA色値を定義します。

デフォルトでは、このプロパティは"white" に設定されています。

異なる色値を用いた出力例

白い光の効果

緑色の光り効果

半透明の緑色の光

color: #ffffff color: #00ff00 color: #aa00ff00
radius: 8radius: 8radius: 8
samples: 17samples: 17samples: 17
spread: 0.5spread: 0.5spread: 0.5

radius : alias

半径は、グローの柔らかさを決定します。半径を大きくすると、グローの縁がよりぼやけて見えます。

半径の値に応じて、samples の値を、視覚的な品質を確保できる十分に大きな値に設定する必要があります。

理想的なぼかし効果は、samples とradius を次のように選択することで得られます。samples = 1 + radius * 2 、例えば:

半径サンプル数
0(ぼかしなし)1
13
25
37

デフォルトでは、このプロパティはfloor(samples/2) に設定されています。

半径の値を変えた場合の出力例

グロー効果なし

中程度の輝きの半径

広い発光半径

radius: 0 radius: 6 radius: 12
samples: 25samples: 25samples: 25
color: #ffffffcolor: #ffffffcolor: #ffffff
spread: 0spread: 0spread: 0

注: radius プロパティは 、エフェクトのオフスクリーンバッファのサイズを計算するために使用されます。値が大きいほど、より多くのメモリが割り当てられます。

samples : alias

このプロパティは、エッジのソフト化(ぼかし)計算を行う際に、1ピクセルあたり何サンプルを採取するかを定義します。値を大きくすると画質は向上しますが、レンダリングに時間がかかります。

理想的には、この値は、必要となる最大半径値の2倍に1を加えた値に設定します。例えば:

半径サンプル数
0(ぼかしなし)1
13
25
37

デフォルトでは、このプロパティは `9` に設定されています。

このプロパティはアニメーションの対象となることを意図していません。このプロパティを変更すると、基盤となるOpenGLシェーダーが再コンパイルされます。

source : alias

このプロパティは、生成されるグローのソースとして使用されるソース項目を定義します。

注: エフェクトの親をソースとして設定するなど、エフェクト自体をソースに含めることはサポートされていません。

spread : alias

このプロパティは、光源の縁付近でグローカラーがどの程度強調されるかを定義します。

値の範囲は 0.0 から 1.0 です。デフォルトでは、このプロパティは0.5 に設定されています。

注:実装は 、中程度および低程度の拡散値に対して最適化されています。光源によっては、拡散値が1.0に近い場合、視覚的に非対称な結果になることがあります。

さまざまな拡散値による出力例

にじまずに輝く

中程度の広がりで輝きを放つ

全面に広がる輝き

spread: 0.0 spread: 0.5 spread: 1.0
radius: 8radius: 8radius: 8
samples: 17samples: 17samples: 17
color: #ffffffcolor: #ffffffcolor: #ffffff

transparentBorder : alias

このプロパティは、エフェクトに透明な境界線があるかどうかを決定します。

true に設定すると、アイテムの外周に透明な縁が追加され、ソーステクスチャの外側をサンプリングする際に、縁のピクセルではなく透明度が使用されるようになります。このプロパティを設定しない場合、縁が不透明な画像では、縁がぼやけません。

デフォルトでは、このプロパティはtrue に設定されています。ソースにすでに透明な縁がある場合は、ぼかし処理をわずかに高速化するために、このプロパティをfalseに設定してください。

以下のスニペットでは、左側の矩形は透明な境界線を持ち、エッジがぼやけていますが、右側の矩形にはぼやけが見られません。

import QtQuick
import Qt5Compat.GraphicalEffects

Rectangle {
    width: 180
    height: 100

    Row {
        anchors.centerIn: parent
        spacing: 16

        Rectangle {
            id: normalRect
            width: 60
            height: 60
            color: "black"
            radius: 10
            layer.enabled: true
            layer.effect: Glow {
                samples: 15
                color: "blue"
                transparentBorder: false
            }
        }

        Rectangle {
            id: transparentBorderRect
            width: 60
            height: 60
            color: "black"
            radius: 10
            layer.enabled: true
            layer.effect: Glow {
                samples: 15
                color: "blue"
                transparentBorder: true
            }
        }
    }
}

透明な枠線の設定の違いを示す長方形

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.