Sur cette page

Glow QML Type

Génère une image floue et colorisée de la source et la superpose à l'original, donnant l'impression que la source brille. En savoir plus...

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

Item

Propriétés

Description détaillée

SourceEffet appliqué

Papillon blanc sur fond noir

Papillon aux contours lumineux

Exemple

L'exemple suivant montre comment appliquer l'effet.

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
    }
}

Documentation sur les propriétés

cached : alias

Cette propriété permet de mettre en cache les pixels de sortie de l'effet afin d'améliorer les performances de rendu.

Chaque fois que les propriétés de la source ou de l'effet sont modifiées, les pixels du cache doivent être mis à jour. La consommation de mémoire augmente, car un tampon de mémoire supplémentaire est nécessaire pour stocker la sortie de l'effet.

Il est recommandé de désactiver le cache lorsque les propriétés de la source ou de l’effet sont animées.

Par défaut, la propriété est définie sur « false ».

color : alias

Cette propriété définit la valeur de couleur RGBA utilisée pour la lueur.

Par défaut, cette propriété est définie sur "white".

Exemples de rendu avec différentes valeurs de couleur

Effet de lueur blanche

Effet de lueur verte

Lueur verte semi-transparente

color: #ffffff color: #00ff00 color: #aa00ff00
radius: 8radius: 8radius: 8
samples: 17samples: 17samples: 17
spread: 0,5spread: 0,5spread: 0,5

radius : alias

Le rayon définit la douceur de la lueur. Un rayon plus grand rend les contours de la lueur plus flous.

En fonction de la valeur du rayon, la valeur de « samples » doit être suffisamment élevée pour garantir la qualité visuelle.

Le flou idéal est obtenu en choisissant les paramètres « samples » et « radius » de telle sorte que « samples = 1 + radius * 2 », par exemple :

RayonÉchantillons
0 (pas de flou)1
13
25
37

Par défaut, la propriété est définie sur « floor(samples/2) ».

Exemples de résultats avec différentes valeurs de rayon

Pas d'effet de lueur

Rayon de luminosité modéré

Grand rayon de luminosité

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

Remarque : la propriété « radius » sert à calculer la taille du tampon hors écran de l'effet. Des valeurs plus élevées entraîneront des allocations de mémoire plus importantes.

samples : alias

Ce paramètre définit le nombre d'échantillons prélevés par pixel lors du calcul du flou d'adoucissement des contours. Une valeur plus élevée offre une meilleure qualité, mais ralentit le rendu.

Idéalement, cette valeur devrait être égale au double de la valeur de rayon la plus élevée requise, plus un, par exemple :

RayonÉchantillons
0 (pas de flou)1
13
25
37

Par défaut, la propriété est définie sur « 9 ».

Cette propriété n'est pas destinée à être animée. La modification de cette propriété entraînera la recompilation des shaders OpenGL sous-jacents.

source : alias

Cette propriété définit l'élément source qui sera utilisé comme source pour la lueur générée.

Remarque : il n'est pas possible de faire en sorte que l'effet s'inclue lui-même, par exemple en définissant la source comme étant le parent de l'effet.

spread : alias

Cette propriété définit dans quelle mesure la couleur de la lueur est intensifiée près des bords de la source.

Les valeurs sont comprises entre 0,0 et 1,0. Par défaut, la propriété est définie sur 0.5.

Remarque : l'implémentation est optimisée pour des valeurs de diffusion moyennes et faibles. Selon la source, des valeurs de diffusion proches de 1,0 peuvent donner des résultats visuellement asymétriques.

Exemples de rendu avec différentes valeurs de diffusion

Un éclat sans effet de diffusion

Éclat avec une couvrance moyenne

Briller de mille feux

spread : 0,0 spread : 0,5 spread : 1,0
radius: 8radius: 8radius: 8
samples: 17samples: 17samples: 17
color: #ffffffcolor: #ffffffcolor: #ffffff

transparentBorder : alias

Cette propriété détermine si l'effet présente ou non une bordure transparente.

Lorsqu'elle est définie sur « true », le contour de l'élément est agrandi par une bordure transparente, ce qui fait que l'échantillonnage en dehors de la texture source utilise la transparence au lieu des pixels du contour. Sans cette propriété, une image dont les contours sont opaques n'aura pas de contour flou.

Par défaut, la propriété est définie sur « true ». Définissez-la sur « false » si la source possède déjà un bord transparent afin d’accélérer très légèrement le floutage.

Dans l'extrait de code ci-dessous, le rectangle de gauche présente des bords transparents et des contours flous, contrairement à celui de droite.

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
            }
        }
    }
}

Rectangles illustrant la différence entre les paramètres de bordure transparente

© 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.