Sur cette page

path2d QML Value Type

Fournit le type `path2d`, un conteneur de chemin de dessin conforme à la spécification QCanvasPath. En savoir plus...

Import Statement: import QtCanvas2D
Since: Qt 6.12
Status: Technology preview

Ce type est en préversion technologique et est susceptible d'être modifié.

Méthodes

  • void addPath(path2d path, transform2d transform)
  • void addPath(string svgPath, 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 counterClockWise)
  • void arcTo(real x1, real y1, real x2, real y2, real radius)
  • void beginHoleSubPath()
  • void beginSolidSubPath()
  • void bezierCurveTo(real cp1x, real cp1y, real cp2x, real cp2y, real x, real y)
  • void circle(real x, real y, real radius)
  • void clear()
  • void closePath()
  • void ellipse(real x, real y, real radiusX, real radiusY)
  • void ellipseRect(real x, real y, real width, real height)
  • bool isEmpty()
  • void lineTo(real x, real y)
  • 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 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 setPathWinding(const QString &winding)

Description détaillée

Ce type de valeur est fourni par l'importation QtCanvas2D.

Voir également QCanvasPath.

Documentation des méthodes

void addPath(path2d path, transform2d transform)

Ajoute une transformation de type « path » à ce chemin, en utilisant transform comme matrice de transformation. La spécification du paramètre transform est facultative.

void addPath(string svgPath, transform2d transform)

Ajoute une matrice de transformation ( svgPath ) à ce chemin, en utilisant transform comme matrice de transformation. La fourniture du paramètre transform est facultative.

// myPath is path2d
if (myPath.isEmpty()) {
    const path = "M 20 20 C 40 120, 80 120, 100 20 Z";
    myPath.addPath(path);
    const t = ctx.createTransform2D();
    t.translate(80, 80);
    myPath.addPath(path, t);
}
ctx.fill(myPath);
ctx.stroke(myPath);

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. La plage comprise entre start et count est vérifiée, afin que le nombre de commandes accessibles ne dépasse pas le nombre de commandes du 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 counterClockWise)

Ajoute un arc au sous-trajet actuel, situé sur la circonférence du cercle dont le centre se trouve au point (x, y) et dont le rayon est radius.

Les coordonnées startAngle et endAngle sont toutes deux mesurées à partir de l’axe des x en radians.

Par défaut, la courbe est orientée dans le sens des aiguilles d’une montre. Pour inverser le sens, définissez counterClockWise sur true.

void arcTo(real x1, real y1, real x2, real y2, real radius)

Ajoute un arc dont le point de départ (x1, y1), le point d'arrivée (x2, y2) et l'radius se trouvent sur le sous-trajet actuel, et le relie au sous-trajet précédent par une ligne droite.

void beginHoleSubPath()

Créer un sous-trajet de trou.

void beginSolidSubPath()

Commencez par tracer un sous-trajet solide.

void bezierCurveTo(real cp1x, real cp1y, real cp2x, real cp2y, real x, real y)

Ajoute une courbe de Bézier cubique entre la position actuelle et le point d'extrémité donné, en utilisant les points de contrôle spécifiés par (cp1x, cp1y) et (cp2x, cp2y). Une fois la courbe ajoutée, la position actuelle est mise à jour pour se situer au point d'extrémité (x, y) de la courbe.

void circle(real x, real y, real radius)

Crée un cercle défini par son centre (x, y) et son rayon radius, puis l'ajoute au tracé en tant que sous-tracé fermé.

Remarque : contrairement à la méthode 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 clear()

Efface toutes les commandes de dessin.

Voir aussi isEmpty().

void closePath()

Ferme le sous-trajet actuel 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.

void ellipse(real x, real y, real radiusX, real radiusY)

Crée un nouveau sous-trajet de forme elliptique centré ( x, y) avec radiusX et radiusY.

L'ellipse est composée d'une courbe dans le sens des aiguilles d'une montre, commençant et se terminant à zéro degré (position 3 heures).

void ellipseRect(real x, real y, real width, real height)

Crée une ellipse à l'intérieur du rectangle de délimitation défini par son coin supérieur gauche situé en (x, y), d'une largeur de width et d'une hauteur de height, puis l'ajoute au tracé en tant que sous-tracé fermé.

L'ellipse est constituée d'une courbe dans le sens des aiguilles d'une montre, commençant et se terminant à zéro degré (position 3 heures).

Remarque : cette méthode correspond à QtQuick::Context2D::ellipse()

bool isEmpty()

Renvoie « true » lorsque le chemin ne contient aucune commande de dessin.

Voir aussi clear().

void lineTo(real x, real y)

Trace une ligne entre la position actuelle et le point situé aux coordonnées (x, y).

void moveTo(real x, real y)

Crée un nouveau sous-chemin dont un point se trouve à l'origine (x, y).

void quadraticCurveTo(real cpx, real cpy, real x, real y)

Ajoute une courbe de Bézier du second degré entre le point actuel et le point final (x, y), avec le point de contrôle spécifié par (cpx, cpy).

void rect(real x, real y, real width, real height)

Ajoute un rectangle à la position (x, y), avec la largeur width et la hauteur height indiquées, sous la forme d'un sous-trajet fermé.

void roundRect(real x, real y, real width, real height, real radius)

Ajoute au tracé un rectangle aux coins arrondis, défini par (x, y, width, height). L'argument « radius » spécifie le rayon des ellipses définissant les coins du rectangle arrondi.

void roundRect(real x, real y, real width, real height, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)

Ajoute au tracé un rectangle aux coins arrondis, défini par (x, y, width, height). Les arguments radiusTopLeft, radiusTopRight, radiusBottomRight et radiusBottomLeft spécifient le rayon des ellipses définissant les coins du rectangle arrondi.

void setPathWinding(const QString &winding)

Définit le sous-trajet actuel winding sur "counterclockwise" (par défaut) ou "clockwise". L'option « counterclockwise » dessine des sous-trajets pleins, tandis que l'option « clockwise » dessine des trous.

Remarque : il s’agit d’une commande, similaire à lineTo, moveTo, etc. ; par conséquent, la définition du sens de tracé doit être effectuée avant les autres commandes auxquelles ce sens modifié est destiné à s’appliquer.

Voir également beginSolidSubPath() et beginHoleSubPath().

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