Canvas2DContext QML Type
Fournit un contexte 2D permettant de dessiner sur un élément de type « Canvas2D ». En savoir plus…
| Import Statement: | import QtCanvas2D |
| Since: | Qt 6.12 |
| Status: | Technology preview |
Ce type est en phase de préversion technologique et est susceptible d'être modifié.
Propriétés
- antialias : real
- canvas : Canvas2D
- direction : string
- fillRule : string
- fillStyle : variant
- font : string
- globalAlpha : real
- globalBrightness : real
- globalCompositeOperation : string
- globalContrast : real
- globalSaturation : real
- highQualityStroking : bool
- lineCap : string
- lineJoin : string
- lineWidth : real
- miterLimit : real
- strokeStyle : variant
- textAlign : string
- textAntialias : real
- textBaseline : string
- textLineHeight : real
- textWrapMode : string
- windingEnforce : bool
Méthodes
- void addPath(path2d path, transform2d transform)
- void addPath(path2d path, int start, int count, transform2d transform)
- void arc(real x, real y, real radius, real startAngle, real endAngle, bool anticlockwise)
- void arcTo(real x1, real y1, real x2, real y2, real radius)
- void beginHoleSubPath()
- void beginPath()
- void beginSolidSubPath()
- void bezierCurveTo(real cp1x, real cp1y, real cp2x, real cp2y, real x, real y)
- void circle(real centerX, real centerY, real radius)
- void cleanupResources()
- void clearRect(real x, real y, real width, real height)
- void closePath()
- boxgradient2d createBoxGradient(real x, real y, real width, real height, real feather, real radius)
- boxshadow2d createBoxShadow(real x, real y, real width, real height)
- boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radius)
- boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
- conicalgradient2d createConicalGradient(real x, real y, real angle)
- gridpattern2d createGridPattern(real x, real y, real width, real height, string lineColor, string backgroundColor, real lineWidth, real feather, real angle)
- lineargradient2d createLinearGradient(real x0, real y0, real x1, real y1)
- path2d createPath2D()
- path2d createPath2D(path2d path)
- path2d createPath2D(string svgPath)
- imagepattern2d createPattern(Image image, string repetition)
- radialgradient2d createRadialGradient(real x0, real y0, real r0, real x1, real y1, real r1)
- transform2d createTransform2D()
- void drawBoxShadow(boxshadow2d shadow)
- void drawImage(variant image, real dx, real dy)
- void drawImage(variant image, real dx, real dy, real dw, real dh)
- void drawImage(variant image, real sx, real sy, real sw, real sh, real dx, real dy, real dw, real dh)
- void ellipse(real centerX, real centerY, real radiusX, real radiusY)
- void ellipseRect(real x, real y, real width, real height)
- void fill()
- void fill(string fillRule)
- void fill(path2d path, int pathGroup)
- void fill(path2d path, string fillRule, int pathGroup)
- void fillRect(real x, real y, real width, real height)
- void fillText(text, x, y, maxWidth)
- void fillText(text, x, y, width, height)
- transform2d getTransform()
- void lineTo(real x, real y)
- object measureText(text)
- void moveTo(real x, real y)
- void quadraticCurveTo(real cpx, real cpy, real x, real y)
- void rect(real x, real y, real width, real height)
- void removePathGroup(int pathGroup)
- void reset()
- void resetClipping()
- void resetTransform()
- void restore()
- void rotate(real angle)
- void roundRect(real x, real y, real width, real height, real radius)
- void roundRect(real x, real y, real width, real height, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
- void save()
- void scale(real scale)
- void scale(real sx, real sy)
- void setClipRect(real x, real y, real width, real height)
- void setPathWinding(string winding)
- void setTransform(transform2d transform)
- void setTransform(real a, real b, real c, real d, real e, real f)
- void skew(real angleX, real angleY)
- void stroke()
- void stroke(path2d path, int pathGroup)
- void strokeRect(real x, real y, real width, real height)
- void transform(transform2d transform)
- void transform(real a, real b, real c, real d, real e, real f)
- void translate(real x, real y)
Description détaillée
L'objet Canvas2DContext peut être créé à l'aide de la méthode getContext() de l'élément Canvas:
Canvas2D {
id: canvas
onPaint: {
var ctx = canvas.getContext('2d');
//...
}
}L'API Context2D implémente la norme W3C Canvas 2D Context API, avec quelques fonctionnalités améliorées.
L'API Context2D fournit le contexte de rendu qui définit les méthodes et les attributs nécessaires pour dessiner sur l'élément Canvas. Le code suivant attribue le contexte de rendu canvas à une variable context:
var context = mycanvas.getContext("2d")Voici un exemple simple d’utilisation de l’ Canvas2D pour créer un bouton rond.
![]() | |
Voici un autre exemple illustrant comment tracer un graphique simple.
![]() | |
Documentation des propriétés
antialias : real
Stocke le niveau d'anticrénelage actuel. Un anticrénelage plus important permet un rendu plus lisse. Cela n'affecte que le remplissage et le tracé, et non les images ou les textes. La valeur par défaut est 1.0 et la valeur maximale est 10.0.
L'anticrénelage peut être modifié pour chaque tracé ; il peut donc être défini avant chaque trait ou remplissage.
![]() | |
Voir également textAntialias.
canvas : Canvas2D
Contient l'élément « canvas » sur lequel le contexte effectue le dessin.
Cette propriété est en lecture seule.
direction : string
Contient la direction actuelle utilisée pour tracer le texte. Les valeurs possibles sont :
| Constante | Description |
|---|---|
"inherit" | (par défaut) La direction du texte est héritée de la propriété layoutDirection d’ QGuiApplication. Voir https://doc.qt.io/qt-6/qguiapplication.html#layoutDirection-prop. |
"ltr" | La direction du texte est de gauche à droite. |
"rtl" | La direction du texte est de droite à gauche. |
"auto" | La direction du texte est détectée automatiquement en fonction de la chaîne de texte. Voir QString::isRightToLeft(). |
La direction par défaut est "inherit".
![]() | |
fillRule : string
Stocke la règle de remplissage actuellement utilisée pour remplir les formes. Cette valeur s'applique à tous les appels à la fonction ` fill()` effectués après la définition de la règle. La règle de remplissage par défaut est "nonzero"
Les règles de remplissage suivantes sont prises en charge :
| Constante | Description |
|---|---|
"nonzero" | (ou « WindingFill ») Le tracé est rempli selon la règle de sens d'enroulement non nulle. Avec cette règle, on détermine si un point se trouve à l'intérieur de la forme en procédant comme suit : on trace une ligne horizontale partant du point vers un emplacement situé à l'extérieur de la forme. On détermine si la direction de la ligne, à chaque point d'intersection, est vers le haut ou vers le bas. Le nombre de boucles est déterminé en additionnant les directions de chaque intersection. Si ce nombre est différent de zéro, le point se trouve à l’intérieur de la forme. Ce mode de remplissage peut également, dans la plupart des cas, être considéré comme l’intersection de formes fermées. Ce mode est celui par défaut. |
"evenodd" | (ou « OddEvenFill ») Le tracé est rempli selon la règle de remplissage « pair-impair ». Avec cette règle, on détermine si un point se trouve à l’intérieur de la forme en procédant comme suit. Tracez une ligne horizontale partant du point vers un emplacement situé à l’extérieur de la forme, puis comptez le nombre d’intersections. Si le nombre d’intersections est impair, le point se trouve à l’intérieur de la forme. |
![]() | |
Voir également fill().
fillStyle : variant
Stocke le style de remplissage actuellement utilisé pour les formes. Le style de remplissage par défaut est le noir uni (« #000000 »). Le style peut être soit une chaîne de caractères contenant une couleur CSS, QML color, soit un objet « pinceau » Canvas. Les valeurs non valides sont ignorées. Cette propriété accepte plusieurs syntaxes de couleur :
- 'rgb(rouge, vert, bleu)' – par exemple : 'rgb(255, 100, 55)' ou 'rgb(100%, 70%, 30%)'
- 'rgba(rouge, vert, bleu, alpha)' – par exemple : 'rgb(255, 100, 55, 1,0)' ou 'rgb(100 %, 70 %, 30 %, 0,5)'
- « hsl(teinte, saturation, luminosité) »
- « hsla(teinte, saturation, luminosité, alpha) »
- '#RRGGBB' – par exemple : '#00FFCC'
- « #AARRGGBB » – par exemple : « #8000FFCC »
- Nom de couleur SVG – par exemple : « black », « green » ou « lightsteelblue »
- Qt.hsla(teinte, saturation, luminosité, alpha) - par exemple : Qt.hsla(0,3, 0,7, 1, 1,0)
- Qt.rgba(rouge, vert, bleu, alpha) – par exemple : Qt.rgba(0,3, 0,7, 1, 1,0)
Si fillStyle ou strokeStyle est attribué plusieurs fois dans une boucle, il est préférable d’utiliser la syntaxe Qt.rgba(), car elle offre les meilleures performances : il s’agit en effet d’une valeur QColor valide qui n’a pas besoin d’être analysée à chaque fois.
![]() | |
![]() |
Voir également createLinearGradient(), createRadialGradient(), createConicalGradient(), createBoxGradient(), createBoxShadow(), createPattern(), createGridPattern() et strokeStyle.
font : string
Enregistre les paramètres de police actuels.
Un sous-ensemble de la norme W3C relative au contexte 2D pour les polices est pris en charge :
- font-style (facultatif) : normal | italic | oblique
- font-variant (facultatif) : normal | petites capitales
- font-weight (facultatif) : normal | bold | 1 ... 1000
- font-size : Npx | Npt (où N est un nombre positif)
- font-family : voir http://www.w3.org/TR/CSS2/fonts.html#propdef-font-family
Remarque : les propriétés font-size et font-family sont obligatoires et doivent apparaître dans l’ordre indiqué ci-dessus. De plus, une famille de polices dont le nom comporte des espaces doit être placée entre guillemets.
La valeur par défaut de la police est « 10px sans-serif ».
globalAlpha : real
Contient la valeur alpha (transparence) actuellement appliquée aux opérations de rendu. Cette valeur alpha s'applique à toutes les formes rendues. Les tracés déjà transparents deviendront également proportionnellement plus transparents. La valeur alpha doit être comprise entre 0,0 (entièrement transparent) et 1,0 (entièrement opaque). Par défaut, la valeur alpha est de 1.0.
![]() | |
globalBrightness : real
Contient la valeur actuelle de luminosité appliquée aux opérations de rendu. Cette luminosité s'applique à toutes les formes rendues. Une valeur de 0 rendra le tracé entièrement noir. La valeur peut également être supérieure à 1,0 pour augmenter la luminosité. Par défaut, la luminosité est de 1.0.
![]() | |
globalCompositeOperation : string
Conserve l'opération de composition en cours. Ce mode s'applique à toutes les opérations de dessin. Les opérations autorisées sont les suivantes :
| Constante | Description |
|---|---|
"source-atop" | A par-dessus B. Affiche l'image source partout où les deux images sont opaques. Affiche l'image de destination partout où celle-ci est opaque mais où l'image source est transparente. Affiche la transparence partout ailleurs. |
"source-over" | (par défaut) A par-dessus B. Affiche l'image source partout où celle-ci est opaque. Affiche l'image de destination partout ailleurs. |
"destination-out" | B par-dessus A. Affiche l'image de destination partout où celle-ci est opaque et où l'image source est transparente. Affiche la transparence partout ailleurs. Remarque : pour fonctionner correctement, les modes de composition nécessitent l'activation de l'option « |
![]() | |
globalContrast : real
Contient la valeur de contraste actuellement appliquée aux opérations de rendu. Ce contraste s'applique à toutes les formes rendues. Une valeur de 0 rendra le tracé entièrement gris (0,5 ; 0,5 ; 0,5). La valeur peut également être supérieure à 1,0 pour augmenter le contraste. Par défaut, le contraste est de 1.0.
![]() | |
globalSaturation : real
Contient la valeur de saturation actuellement appliquée aux opérations de rendu. Cette saturation s'applique à toutes les formes rendues. Une valeur de 0 désactive la saturation et rend le dessin entièrement en niveaux de gris. La valeur peut également être supérieure à 1,0 pour augmenter la saturation. Par défaut, la saturation est de 1.0.
![]() | |
highQualityStroking : bool
Conserve l'état actuel d'activation du tracé haute qualité. La valeur « true » permet un rendu plus précis dans certains cas peu courants où les tracés se chevauchent et ne présentent pas une opacité totale. L'activation de cette option entraîne une augmentation du coût de rendu. La valeur par défaut est « false ».
![]() | |
lineCap : string
Contient le style actuel d'extrémité de ligne. Les styles d'extrémité de ligne possibles sont les suivants :
| Constant | Description |
|---|---|
"butt" | (par défaut) L'extrémité de chaque ligne présente un bord plat perpendiculaire à la direction de la ligne. |
"round" | Un demi-cercle dont le diamètre est égal à la largeur de la ligne est ajouté à l'extrémité de la ligne. |
"square" | Un rectangle dont la longueur correspond à la largeur de la ligne et dont la largeur est égale à la moitié de la largeur de la ligne, placé à plat contre le bord perpendiculaire à la direction de la ligne. |
![]() | |
lineJoin : string
Contient le style de jonction de lignes actuel. Une jonction existe à n'importe quel point d'un sous-trajet commun à deux lignes consécutives. Lorsqu'un sous-trajet est fermé, une jonction existe également à son premier point (équivalent à son dernier point), reliant la première et la dernière ligne du sous-trajet.
Les styles de jonction de lignes possibles sont les suivants :
| Constant | Description |
|---|---|
"bevel" | L'encoche triangulaire entre les deux lignes est remplie. |
"round" | Un arc de cercle entre les deux lignes est rempli. |
"miter" | (par défaut) Les bords extérieurs des lignes sont prolongés pour se rejoindre en formant un angle, et cette zone est remplie. |
![]() | |
Voir aussi miterLimit.
lineWidth : real
Stocke la largeur de ligne actuelle. La largeur de ligne par défaut est 1.0. Lorsque l'anticrénelage est activé, les largeurs de ligne inférieures à un pixel voient leur opacité automatiquement atténuée, ce qui permet d'obtenir un rendu fluide.
![]() | |
Voir aussi stroke().
miterLimit : real
Stocke la longueur limite actuelle de l'onglet. La limite d'onglet détermine à quel moment un angle vif est biseauté. Lorsque la longueur de l'angle dépasse cette limite, une « biseau » lineJoin est alors appliquée entre les lignes. Cela ne s'applique qu'avec le type de jonction « onglet ». La limite par défaut est 10.0.
![]() | |
Voir également lineJoin.
strokeStyle : variant
Stocke la couleur ou le style actuel à utiliser pour les lignes entourant les formes. Le style peut être soit une chaîne de caractères contenant une couleur CSS ( QML color), soit un objet « pinceau » Canvas. Les valeurs non valides sont ignorées.
La valeur par défaut est le noir (« #000000 »).
![]() | |
![]() | |
Voir également createLinearGradient(), createRadialGradient(), createConicalGradient(), createBoxGradient(), createBoxShadow(), createPattern(), createGridPattern() et fillStyle.
textAlign : string
Contient les paramètres d'alignement du texte actuels. Les valeurs possibles sont les suivantes :
| Constante | Description |
|---|---|
"start" | (par défaut) Aligne sur le bord de départ du texte (côté gauche pour le texte de gauche à droite, côté droit pour le texte de droite à gauche). |
"end" | Alignement sur le bord de fin du texte (côté droit pour un texte de gauche à droite, côté gauche pour un texte de droite à gauche). |
"left" | Aligner à gauche. |
"right" | Aligner à droite. |
"center" | Centrer le texte. |
![]() | |
Voir aussi textBaseline.
textAntialias : real
Stocke le niveau actuel d'anticrénelage du texte. Cette valeur correspond à un multiplicateur de l'anticrénelage normal : ainsi, la valeur « 0.0 » désactive l'anticrénelage, tandis que la valeur « 2.0 » le double. La valeur par défaut is 1,0.
Remarque : en raison de la technique d'anticrénelage du texte utilisée (SDF), le niveau maximal d'anticrénelage est assez limité, ce qui a moins d'impact lorsque la taille de la police est petite.
![]() | |
textBaseline : string
Contient les paramètres d'alignement de base actuels. Les valeurs possibles sont :
| Constante | Description |
|---|---|
"top" | Le haut du carré « em » |
"hanging" | La ligne de base suspendue |
"middle" | Le milieu du carré « em » |
"alphabetic" | (par défaut) La ligne de base alphabétique |
"bottom" | Le bas du carré em |
![]() | |
Voir aussi textAlign.
textLineHeight : real
Contient la valeur d'ajustement de la hauteur de ligne du texte actuel, exprimée en pixels. La hauteur de ligne par défaut est de 0.
![]() | |
textWrapMode : string
Définit le mode actuel de retour à la ligne, c'est-à-dire la manière dont le texte est réparti sur plusieurs lignes. Les valeurs possibles sont :
| Constante | Description |
|---|---|
"nowrap" | (par défaut) Aucun retour à la ligne n'est effectué. Si le texte ne contient pas suffisamment de sauts de ligne, la largeur du contenu (contentWidth) dépassera la largeur définie. |
"wrap" | Si possible, le retour à la ligne s'effectue à la fin d'un mot ; sinon, il s'effectue à l'endroit approprié sur la ligne, même au milieu d'un mot. |
"wordwrap" | Le retour à la ligne s’effectue uniquement à la fin d’un mot. Si un mot est trop long, la largeur du contenu dépassera la largeur définie. |
"wrapanywhere" | Le retour à la ligne s'effectue à n'importe quel endroit de la ligne, même au milieu d'un mot. |
Le mode de retour à la ligne par défaut est « "nowrap" ».
![]() | |
windingEnforce : bool
Conserve l'état actuel d'application de la courbure. En définissant cette option sur « false », l'application de la courbure des chemins est désactivée afin de respecter les paramètres définis dans la fonction « setPathWinding() ». La désactivation permet, par exemple, de créer des trous dans les chemins en ajoutant les points dans le sens des aiguilles d'une montre. Elle peut également améliorer les performances. La valeur par défaut est « true ».
![]() | |
Documentation de la méthode
void addPath(path2d path, transform2d transform)
Ajoute path au chemin actuel, en utilisant éventuellement transform pour modifier les points du chemin. Lorsque transform n'est pas fourni (ou qu'il s'agit de la matrice identité), cette opération est très rapide car elle réutilise les données du chemin.
![]() | |
void addPath(path2d path, int start, int count, transform2d transform)
Ajoute path au chemin actuel, en partant de la commande située à l'adresse start et en incluant count nombre de commandes. Il est possible d'utiliser transform pour modifier les points du chemin. Les plages start et count sont vérifiées, afin que le nombre de commandes accessibles ne dépasse pas le nombre de commandes contenues dans le chemin. Si le chemin ne doit pas se poursuivre à partir de la position actuelle, appelez d'abord moveTo().
![]() | |
void arc(real x, real y, real radius, real startAngle, real endAngle, bool anticlockwise)
Crée un nouveau sous-trajet en forme d’arc de cercle. Le centre de l’arc se trouve à l’adresse x, y, avec radius, et l’arc est tracé selon un angle compris entre startAngle et endAngle. La direction par défaut de la courbe est dans le sens des aiguilles d’une montre. Pour inverser cette direction, définissez anticlockwise sur true. Les angles sont exprimés en radians.
![]() | |
Remarque : alors que le contexte 2D HTML canvas utilise la fonction arc() pour dessiner des cercles, avec Canvas2D, il est recommandé d’utiliser circle() ou ellipse() à cette fin.
Voir également arcTo et la norme W3C sur le contexte 2D pour la fonction arc().
void arcTo(real x1, real y1, real x2, real y2, real radius)
Ajoute un segment d'arc au coin défini par le dernier point du tracé et deux points spécifiés (x1, y1 et x2, y2) avec radius. L'arc est automatiquement relié au dernier point du tracé par une ligne droite si nécessaire.
![]() | |
Voir également arc et la norme 2D Context du W3C pour la fonction arcTo().
void beginHoleSubPath()
Créer un sous-trajet de trou. Cela revient à setPathWinding("clockwise")
![]() | |
Voir également beginSolidSubPath().
void beginPath()
Commence à tracer un nouveau chemin tout en effaçant le chemin actuel.
void beginSolidSubPath()
Lancer un sous-trajet solide. Cela revient à setPathWinding("counterclockwise")
Voir aussi beginHoleSubPath().
void bezierCurveTo(real cp1x, real cp1y, real cp2x, real cp2y, real x, real y)
Ajoute un segment de courbe de Bézier cubique partant du dernier point du tracé, en passant par deux points de contrôle (cp1x, cp1y et cp2x, cp2y), jusqu'au point spécifié (x, y).
![]() | |
Voir également la norme W3C relativeau contexte 2D pour la fonction `bezierCurveTo`.
void circle(real centerX, real centerY, real radius)
Crée un nouveau sous-trajet circulaire centré en ( centerX, centerY) avec radius.
![]() | |
Remarque : contrairement à la fonction ` arc()`, cette méthode n'ajoute pas de ligne droite reliant le dernier point du sous-trajet au point de départ du cercle.
void cleanupResources()
Programme la suppression des textures inutilisées du cache.
De plus, d'autres caches et pools peuvent être réduits lors de l'appel de cette fonction, afin de minimiser l'utilisation de la mémoire. Cela peut potentiellement entraîner des appels de dessin plus coûteux par la suite.
void clearRect(real x, real y, real width, real height)
Efface les pixels d'une zone rectangulaire en remplissant de noir transparent le rectangle défini par x, y, width, height. L'effacement ne nécessitant pas de fusion, il peut s'avérer plus rapide que la fonction fillRect().
![]() | |
void closePath()
Ferme le sous-trajet courant en traçant une ligne jusqu'au début de celui-ci, ce qui lance automatiquement un nouveau trajet. Le point actuel du nouveau trajet correspond au premier point du sous-trajet précédent.
Voir également la norme W3C relativeau contexte 2D pour la propriété `closePath`.
boxgradient2d createBoxGradient(real x, real y, real width, real height, real feather, real radius)
Renvoie un objet ` boxgradient2d ` représentant un dégradé de boîte couvrant la zone rectangulaire (x, y, width, height) avec un adoucissement (feather) feather et un rayon de coin radius.
![]() | |
Voir également boxgradient2d::addColorStop(), fillStyle et strokeStyle.
boxshadow2d createBoxShadow(real x, real y, real width, real height)
Renvoie un objet ` boxshadow2d ` représentant une ombre portée qui recouvre la zone rectangulaire (x, y, width, height).
![]() | |
Voir également drawBoxShadow().
boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radius)
Renvoie un objet ` boxshadow2d ` avec une couleur color représentant une ombre portée qui recouvre la zone du rectangle (x, y, width, height) avec un flou blur et un rayon de coin radius.
Voir également drawBoxShadow().
boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
Renvoie un objet ` boxshadow2d ` avec des paramètres de couleur ( color ) représentant une ombre portée qui recouvre la zone du rectangle (x, y, width, height) avec un flou ( blur ) et un rayon de coin (radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft).
Voir également drawBoxShadow().
conicalgradient2d createConicalGradient(real x, real y, real angle)
Renvoie un objet ` conicalgradient2d ` représentant un dégradé conique qui interpole les couleurs dans le sens antihoraire autour d'un point central (x, y) avec un angle de départ angle, exprimé en radians.
![]() | |
Voir également conicalgradient2d::addColorStop(), createLinearGradient(), createRadialGradient(), createPattern(), fillStyle et strokeStyle.
gridpattern2d createGridPattern(real x, real y, real width, real height, string lineColor, string backgroundColor, real lineWidth, real feather, real angle)
Renvoie un objet ` gridpattern2d ` qui couvre la zone rectangulaire (x, y, width, height). La grille utilise lineColor pour les lignes et backgroundColor pour l'arrière-plan. La largeur de ligne est lineWidth, le contour progressif des lignes est feather et l'angle de rotation est angle en radians.
![]() | |
lineargradient2d createLinearGradient(real x0, real y0, real x1, real y1)
Renvoie un objet ` lineargradient2d ` représentant un dégradé linéaire qui effectue une transition de couleur le long d'une ligne entre le point de départ (x0, y0) et le point d'arrivée (x1, y1).
Les dégradés doivent comporter au moins deux arrêts de couleur, représentant des changements de couleur situés entre 0 et 1 entre les points de départ et d'arrivée du dégradé.
![]() | |
Voir également lineargradient2d::addColorStop(), createRadialGradient(), createConicalGradient(), createPattern(), fillStyle et strokeStyle.
path2d createPath2D()
Renvoie un nouvel objet `path2d`. L'appel de cette méthode équivaut à la commande HTML `new Path2D()` du canevas.
Voir également fill() et stroke().
path2d createPath2D(path2d path)
Renvoie un nouvel objet `Path2D`, contenant une copie de ` path`. L'appel de cette méthode équivaut à la commande HTML `canvas` « `new Path2D(path)` ».
Voir également fill() et stroke().
path2d createPath2D(string svgPath)
Renvoie un nouvel objet `Path2D`, dont le contenu est celui de ` svgPath`. L'appel de cette méthode équivaut à la commande HTML `canvas "new Path2D(d)"`.
Voir également fill() et stroke().
imagepattern2d createPattern(Image image, string repetition)
Renvoie un objet ` imagepattern2d ` qui utilise l'image fournie et la répète dans la ou les directions indiquées par l'argument `repetition`.
Le paramètre ` image ` doit être un élément `Image` valide ou l'URL d'une image chargée. En l'absence de données d'image, cette fonction lève une exception `INVALID_STATE_ERR`.
Les valeurs autorisées pour ` repetition ` sont les suivantes :
| Constante | Description |
|---|---|
"repeat" | les deux directions |
"repeat-x | horizontal uniquement |
"repeat-y" | vertical uniquement |
"no-repeat" | aucune |
Si l'argument de répétition est vide ou nul, la valeur « repeat » est utilisée.
![]() | |
Voir également strokeStyle et fillStyle.
radialgradient2d createRadialGradient(real x0, real y0, real r0, real x1, real y1, real r1)
Renvoie un objet ` radialgradient2d ` représentant un dégradé radial qui s'étend le long du cône défini par le cercle de départ, dont l'origine est (x0, y0) et le rayon r0, et le cercle de fin, dont l'origine est (x1, y1) et le rayon r1.
Avec seulement 4 paramètres, ceux-ci sont utilisés sous la forme (x, y, r0, r1), la position du centre étant la même pour les rayons intérieur et extérieur.
![]() | |
![]() | |
Voir également radialgradient2d::addColorStop(), createLinearGradient(), createConicalGradient(), createPattern(), fillStyle et strokeStyle.
transform2d createTransform2D()
Renvoie un nouvel objet `transform2d`, initialisé à la matrice identité.
Voir également getTransform().
void drawBoxShadow(boxshadow2d shadow)
Dessine une boîte donnée shadow. L'ombre sera tracée selon la position, la taille, la couleur, le flou, etc. définis par shadow. Il n'est pas nécessaire d'appeler beginPath() avant cette méthode.
![]() | |
Voir également createBoxShadow().
void drawImage(variant image, real dx, real dy)
Dessine l'image n fournie sur le canevas à la position (dx, dy). Remarque : le type « image » peut être un élément « Image » ou une URL d’image. Lorsqu’il s’agit d’un élément « Image », si l’image n’est pas entièrement chargée, cette méthode ne dessine rien. Lorsqu’il s’agit d’une chaîne de caractères représentant une URL, l’image doit être chargée au préalable en appelant la méthode « Canvas2D::loadImage() » de l’élément « Canvas ». Ce dessin est soumis au chemin de découpe du contexte actuel.
![]() | |
Voir également Image, Canvas2D::loadImage, Canvas2D::isImageLoaded, Canvas2D::imageLoaded et la norme W3C 2D Context relative à drawImage.
void drawImage(variant image, real dx, real dy, real dw, real dh)
Il s'agit d'une fonction surchargée. Elle dessine l'élément donné sous la forme image sur le canevas, au point (dx, dy) et avec une largeur de dw et une hauteur de dh.
![]() | |
Voir également Image, Canvas2D::loadImage(), Canvas2D::isImageLoaded, Canvas2D::imageLoaded et la norme W3C relative au contexte 2D pour la méthode drawImage.
void drawImage(variant image, real sx, real sy, real sw, real sh, real dx, real dy, real dw, real dh)
Il s'agit d'une fonction surchargée. Elle dessine l'élément donné sous la forme d'image à partir du point source (sx, sy), de la largeur source sw et de la hauteur source sh sur le canevas, au point (dx, dy) et avec une largeur de dw et une hauteur de dh.
![]() | |
Voir également Image, ` Canvas2D::loadImage()`, ` Canvas2D::isImageLoaded`, ` Canvas2D::imageLoaded` et la norme W3C 2D Context relative à la fonction `drawImage`.
void ellipse(real centerX, real centerY, real radiusX, real radiusY)
Crée un nouveau sous-tracé de forme elliptique centré en ( centerX, centerY) avec radiusX et radiusY.
![]() | |
void ellipseRect(real x, real y, real width, real height)
Crée un nouveau sous-tracé en forme d'ellipse à l'intérieur d'un rectangle : x, y, width, height. Cette ellipse recouvrira la zone du rectangle.
![]() | |
Remarque : cette méthode correspond à QtQuick::Context2D::ellipse()
void fill()
Remplit le tracé actuel avec le style de remplissage et la règle de remplissage actuels.
![]() | |
Voir également fillStyle, fillRule et la norme W3C relative au contexte 2D pour le remplissage.
void fill(string fillRule)
Remplit le tracé actuel avec le style de remplissage actuel et la règle de remplissage fillRule.
Voir également fillStyle et fillRule.
void fill(path2d path, int pathGroup)
Remplit l'objet « path » avec le style et la règle de remplissage actuels, et l'intègre dans l'objet facultatif « pathGroup ». Le remplissage via « QCanvasPath » est optimal lorsque le tracé contient davantage de commandes et est principalement statique.
Lorsque pathGroup est défini sur -1, le tracé ne sera pas mis en cache côté GPU. Il s’agit du comportement par défaut. Pour demander la mise en cache des données de tracé, transmettez une valeur égale ou supérieure à 0. Vous trouverez plus d’informations sur l’utilisation des groupes de cache de tracé dans la documentation QCanvasPath.
Il n’est pas nécessaire d’appeler ` beginPath()` avant cette méthode.
![]() | |
Voir également fillStyle et path2d.
void fill(path2d path, string fillRule, int pathGroup)
Remplit l'élément « path » avec le style de remplissage actuel et en utilisant fillRule. Le paramètre de groupe de cache pathGroup est facultatif.
Voir également fillStyle, fillRule et path2d.
void fillRect(real x, real y, real width, real height)
Dessine un rectangle rempli à l'emplacement spécifié ( x, y) avec les dimensions width, height.
Remarque : cette fonction est fournie à titre de commodité. Lorsque vous souhaitez remplir plusieurs rectangles, il est préférable d'utiliser ` rect()`.
![]() | |
Voir également fillStyle.
void fillText(text, x, y, maxWidth)
Affiche la chaîne « text » à l’emplacement spécifié ( x, y), avec les paramètres actuels textAlign et textBaseline. Pour que le texte s’affiche sur plusieurs lignes, définissez le mode de retour à la ligne à l’aide de textWrapMode en choisissant une valeur autre que la valeur par défaut "nowrap". Le paramètre facultatif maxWidth prend par défaut la valeur 0. Cela signifie que lorsque, par exemple, "wordwrap" a été défini, le texte est renvoyé à la ligne à chaque mot. Définissez le paramètre maxWidth sur la largeur de ligne souhaitée en pixels.
![]() | |
Voir également font, textAlign, textBaseline et textWrapMode.
void fillText(text, x, y, width, height)
Dessine la chaîne « text » à l'intérieur du rectangle (x, y, width, height), en utilisant les paramètres actuels textAlign et textBaseline. La largeur du paramètre rect est utilisée comme maxWidth.
Il est souvent utile de définir la ligne de base du texte sur TextBaseline::Top ou TextBaseline::Middle lors du tracé de texte avec cette méthode.
![]() | |
Voir également font, textAlign, textBaseline et textWrapMode.
transform2d getTransform()
Renvoie la matrice de transformation actuelle.
Voir aussi setTransform().
void lineTo(real x, real y)
Trace une ligne entre la position actuelle et le point situé aux coordonnées (x, y).
![]() | |
object measureText(text)
Renvoie un objet doté d'une propriété « width », dont la valeur correspond à l'appel de la fonction ` QFontMetricsF::horizontalAdvance()` avec l'text fournie, dans la police actuelle.
void moveTo(real x, real y)
Crée un nouveau sous-chemin dont un point se trouve à l'adresse (x, y).
void quadraticCurveTo(real cpx, real cpy, real x, real y)
Ajoute un segment de courbe de Bézier quadratique partant du dernier point du tracé, en passant par un point de contrôle (cpx, cpy), jusqu'au point spécifié (x, y).
![]() | |
Voir également la norme W3C relativeau contexte 2D pour la fonction `quadraticCurveTo`.
void rect(real x, real y, real width, real height)
Crée un nouveau sous-trajet de forme rectangulaire à la position x, y, de taille width, height.
![]() | |
void removePathGroup(int pathGroup)
Supprime l'pathGroup du cache du peintre. L'appel de ` fill()` ou ` stroke()` pour ` pathGroup ` après cette opération régénérera le chemin dans le cache du groupe.
Remarque : il n'est généralement pas nécessaire d'appelercette fonction , car les chemins sont supprimés dans le destructeur du peintre. Ne l'utilisez que pour réduire l'utilisation de la mémoire lorsque pathGroup n'est plus nécessaire ou, par exemple, lorsque le chemin contient beaucoup moins de commandes qu'auparavant et que la taille du tampon doit être réduite.
Voir également fill() et stroke().
void reset()
Réinitialise l'état actuel du peintre aux valeurs par défaut.
Remarque : cette méthode diffère de la méthode reset() du contexte 2D du canevas HTML, car elle n'efface pas visuellement les tampons du canevas.
![]() | |
Voir également save() et restore().
void resetClipping()
Réinitialise et désactive l'écrêtage.
Voir aussi setClipRect().
void resetTransform()
Réinitialiser la matrice de transformation à sa valeur par défaut (ce qui équivaut à appeler setTransform(1, 0, 0, 1, 0, 0)).
Voir également transform(), setTransform() et reset().
void restore()
Affiche et restaure l'état de rendu actuel. L'état précédemment enregistré sera donc restauré. Si la fonction save() n'a pas été appelée et que la pile d'états est vide, l'appel de cette fonction n'a aucun effet.
Voir également save().
void rotate(real angle)
Fait pivoter le système de coordonnées actuel dans le sens des aiguilles d'une montre d'angle.
L'angle est exprimé en radians.
![]() | |
void roundRect(real x, real y, real width, real height, real radius)
Crée un nouveau sous-trajet en forme de rectangle arrondi à la position x, y avec les dimensions width, height. L'arrondi des coins sera radius.
![]() | |
void roundRect(real x, real y, real width, real height, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
Crée un nouveau sous-trajet en forme de rectangle arrondi à la position x, y, avec les dimensions width, height. L'arrondi des coins peut varier d'un coin à l'autre, avec les valeurs radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft.
![]() | |
void save()
Ajoute et enregistre l'état de rendu actuel dans une pile d'états. Il faut utiliser la méthode correspondante ` restore()` pour restaurer cet état.
Remarque : le tracé actuel ne fait PAS partie de l'état de dessin. Le tracé peut être réinitialisé en appelant la méthode beginPath().
![]() | |
Voir également restore().
void scale(real scale)
Mise à l'échelle du système de coordonnées actuel selon le rapport scale. Les coordonnées x et y sont mises à l'échelle de manière uniforme.
![]() | |
void scale(real sx, real sy)
Augmente ou réduit la taille de chaque unité de la grille du canevas en multipliant la matrice de transformation actuelle par les facteurs d'échelle. sx correspond au facteur d'échelle dans le sens horizontal et sy au facteur d'échelle dans le sens vertical.
Le code suivant double la taille horizontale d'un objet dessiné sur le canevas et divise par deux sa taille verticale :
ctx.scale(2.0, 0.5);void setClipRect(real x, real y, real width, real height)
Définit le rectangle de découpe actuel sur (x, y, width, height). Le rectangle de découpe est transformé par la transformation actuelle.
Remarque : le découpage a un certain coût en termes de performances et ne doit être utilisé qu’en cas de nécessité.
![]() | |
Voir également resetClipping().
void setPathWinding(string winding)
Définit le sens du sous-trajet winding sur « counterclockwise » (par défaut) ou « clockwise ». « counterclockwise » permet de tracer des sous-trajets pleins, tandis que « clockwise » permet de tracer des trous.
![]() | |
Voir également beginHoleSubPath() et beginSolidSubPath().
void setTransform(transform2d transform)
Réinitialise la transformation actuelle et utilise à la place transform.
![]() | |
Voir également transform() et getTransform().
void setTransform(real a, real b, real c, real d, real e, real f)
Modifie la matrice de transformation pour lui attribuer la matrice indiquée par les arguments, comme décrit ci-dessous.
La modification directe de la matrice de transformation vous permet d’effectuer des transformations de mise à l’échelle, de rotation et de translation en une seule étape.
Chaque point du canevas est multiplié par la matrice avant tout tracé. La spécification HTML Canvas 2D Context définit la matrice de transformation où :
- a est le facteur d'échelle dans la direction horizontale (x)
- c est le facteur d'inclinaison dans la direction x
- e est la translation dans la direction x
- b est le facteur d'inclinaison dans la direction y (verticale)
- d est le facteur d'échelle dans la direction y
- f est la translation dans la direction y
- la dernière ligne reste constante
Les facteurs d'échelle et les facteurs d'inclinaison sont des multiples ; e et f sont des unités de l'espace de coordonnées, tout comme les unités de la méthode translate(x,y).
Voir également transform().
void skew(real angleX, real angleY)
Déforme (cisaille) le système de coordonnées actuel de angleX le long de l'axe X et de angleY le long de l'axe Y. La valeur par défaut de angleY est 0 lorsqu'un seul paramètre est fourni. Les angles sont exprimés en radians.
![]() | |
void stroke()
Trace le tracé actuel avec le style de trait actuel.
![]() | |
Voir également strokeStyle et la norme W3C relative au contexte 2D pour le trait.
void stroke(path2d path, int pathGroup)
Trace le chemin path avec le style de trait actuel et l'intègre dans pathGroup. Le tracé via QCanvasPath est optimal lorsque le chemin contient davantage de commandes et est essentiellement statique.
Lorsque pathGroup est défini sur -1, les données liées au rendu du tracé ne sont pas mises en cache. Il s’agit du comportement par défaut. Pour demander la mise en cache des données du tracé, transmettez une valeur égale ou supérieure à 0. Vous trouverez plus d’informations sur l’utilisation des groupes de cache de tracé dans la documentation « QCanvasPath ».
Il n’est pas nécessaire d’appeler beginPath() avant cette méthode.
![]() | |
Voir également strokeStyle, path2d et la norme W3C 2d context relative au trait.
void strokeRect(real x, real y, real width, real height)
Dessine un rectangle avec contour à l'emplacement spécifié ( x, y) et de taille width, height.
Remarque : cette fonction est fournie à titre de commodité. Lorsque vous tracez les contours de plusieurs rectangles, préférez utiliser rect().
![]() | |
Voir également strokeStyle, lineWidth, lineJoin et miterLimit.
void transform(transform2d transform)
Multiplie le système de coordonnées actuel par l'transform e spécifiée.
![]() | |
Voir aussi ` setTransform()`.
void transform(real a, real b, real c, real d, real e, real f)
Multiplie le système de coordonnées actuel par la transformation spécifiée (a, b, c, d, e, f).
Cette méthode est similaire à setTransform(), mais au lieu de remplacer l'ancienne matrice de transformation, elle applique la matrice de transformation fournie à la matrice actuelle en la multipliant par celle-ci.
Voir également setTransform().
void translate(real x, real y)
Transforme le système de coordonnées actuel selon les fonctions x et y.
![]() | |
© 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.




































































