Glow QML Type
ソース画像をぼかして色付けし、元の画像の背後に配置することで、ソースが光っているような印象を与えます。詳細...
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
プロパティ
- cached : alias
- color : alias
- radius : alias
- samples : alias
- source : alias
- spread : alias
- transparentBorder : alias
詳細説明
| 出典 | 適用されたエフェクト |
|---|---|
|
|
例
以下の例は、エフェクトの適用方法を示しています。
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: 8 | radius: 8 | radius: 8 |
| samples: 17 | samples: 17 | samples: 17 |
| spread: 0.5 | spread: 0.5 | spread: 0.5 |
radius : alias
半径は、グローの柔らかさを決定します。半径を大きくすると、グローの縁がよりぼやけて見えます。
半径の値に応じて、samples の値を、視覚的な品質を確保できる十分に大きな値に設定する必要があります。
理想的なぼかし効果は、samples とradius を次のように選択することで得られます。samples = 1 + radius * 2 、例えば:
| 半径 | サンプル数 |
|---|---|
| 0(ぼかしなし) | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
デフォルトでは、このプロパティはfloor(samples/2) に設定されています。
| 半径の値を変えた場合の出力例 | ||
|---|---|---|
|
|
|
| radius: 0 | radius: 6 | radius: 12 |
| samples: 25 | samples: 25 | samples: 25 |
| color: #ffffff | color: #ffffff | color: #ffffff |
| spread: 0 | spread: 0 | spread: 0 |
注: radius プロパティは 、エフェクトのオフスクリーンバッファのサイズを計算するために使用されます。値が大きいほど、より多くのメモリが割り当てられます。
samples : alias
このプロパティは、エッジのソフト化(ぼかし)計算を行う際に、1ピクセルあたり何サンプルを採取するかを定義します。値を大きくすると画質は向上しますが、レンダリングに時間がかかります。
理想的には、この値は、必要となる最大半径値の2倍に1を加えた値に設定します。例えば:
| 半径 | サンプル数 |
|---|---|
| 0(ぼかしなし) | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
デフォルトでは、このプロパティは `9` に設定されています。
このプロパティはアニメーションの対象となることを意図していません。このプロパティを変更すると、基盤となるOpenGLシェーダーが再コンパイルされます。
source : alias
このプロパティは、生成されるグローのソースとして使用されるソース項目を定義します。
注: エフェクトの親をソースとして設定するなど、エフェクト自体をソースに含めることはサポートされていません。
spread : alias
このプロパティは、光源の縁付近でグローカラーがどの程度強調されるかを定義します。
値の範囲は 0.0 から 1.0 です。デフォルトでは、このプロパティは0.5 に設定されています。
注:実装は 、中程度および低程度の拡散値に対して最適化されています。光源によっては、拡散値が1.0に近い場合、視覚的に非対称な結果になることがあります。
| さまざまな拡散値による出力例 | ||
|---|---|---|
|
|
|
| spread: 0.0 | spread: 0.5 | spread: 1.0 |
| radius: 8 | radius: 8 | radius: 8 |
| samples: 17 | samples: 17 | samples: 17 |
| color: #ffffff | color: #ffffff | color: #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.










