Canvas2DContext QML Type
Stellt einen 2D-Kontext zum Zeichnen auf einem „ Canvas2D “-Element bereit. Mehr...
| Import Statement: | import QtCanvas2D |
| Since: | Qt 6.12 |
| Status: | Technology preview |
Dieser Typ befindet sich in der Technologievorschau und kann sich noch ändern.
Eigenschaften
- 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
Methoden
- 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)
Ausführliche Beschreibung
Das Canvas2DContext-Objekt kann über die Methode „ getContext() “ des Elements „ Canvas “ erstellt werden:
Canvas2D {
id: canvas
onPaint: {
var ctx = canvas.getContext('2d');
//...
}
}Die Context2D -API implementiert denselben W3C-Canvas-2D-Context-API-Standard mit einigen erweiterten Funktionen.
Die Context2D -API stellt den Render ing-Kontext bereit, der die Methoden und Attribute definiert, die zum Zeichnen auf dem Canvas -Element benötigt werden. Im folgenden Beispiel wird der Canvas-Rendering-Kontext einer context -Variablen zugewiesen:
var context = mycanvas.getContext("2d")Hier ist ein einfaches Beispiel für die Verwendung von „ Canvas2D “ zum Erstellen einer runden Schaltfläche.
![]() | |
Hier ist ein weiteres Beispiel für das Zeichnen eines einfachen Diagramms.
![]() | |
Dokumentation zu den Eigenschaften
antialias : real
Speichert den aktuellen Antialiasing-Wert. Ein höherer Antialiasing-Wert sorgt für eine glattere Darstellung. Dies wirkt sich nur auf das Ausfüllen und Zeichnen von Konturen aus, nicht auf Bilder oder Texte. Der Standardwert ist 1.0 und der Maximalwert ist 10.0.
Das Antialiasing kann pro Pfad angepasst werden, sodass es vor jedem Strich bzw. jeder Füllung festgelegt werden kann.
![]() | |
Siehe auch textAntialias.
canvas : Canvas2D
Enthält das Canvas-Element, auf das der Kontext zeichnet.
Diese Eigenschaft ist schreibgeschützt.
direction : string
Enthält die aktuelle Richtung, die zum Zeichnen von Text verwendet wird. Mögliche Werte sind:
| Konstante | Beschreibung |
|---|---|
"inherit" | (Standard) Die Textrichtung wird von ` QGuiApplication ` übernommen. Siehe https://doc.qt.io/qt-6/qguiapplication.html#layoutDirection-prop. |
"ltr" | Die Textrichtung ist von links nach rechts. |
"rtl" | Die Textrichtung ist von rechts nach links. |
"auto" | Die Textrichtung wird anhand der Textzeichenfolge automatisch ermittelt. Siehe QString::isRightToLeft(). |
Die Standardrichtung ist „ "inherit" “.
![]() | |
fillRule : string
Enthält die aktuell verwendete Füllregel zum Ausfüllen von Formen. Dieser Wert wird auf alle Aufrufe von ` fill()` angewendet, nachdem die Regel festgelegt wurde. Die Standard-Füllregel lautet "nonzero"
Die folgenden Füllregeln werden unterstützt:
| Konstant | Beschreibung |
|---|---|
"nonzero" | (oder „WindingFill“) Der Pfad wird unter Verwendung der „Non-Zero-Winding“-Regel ausgefüllt. Bei dieser Regel wird anhand der folgenden Methode bestimmt, ob sich ein Punkt innerhalb der Form befindet: Zeichne eine horizontale Linie von dem Punkt zu einer Stelle außerhalb der Form. Bestimme, ob die Richtung der Linie an jedem Schnittpunkt nach oben oder nach unten zeigt. Die Winding-Zahl ergibt sich aus der Summe der Richtungen an den einzelnen Schnittpunkten. Ist die Zahl ungleich Null, befindet sich der Punkt innerhalb der Form. Dieser Füllmodus kann in den meisten Fällen auch als Schnittmenge geschlossener Formen betrachtet werden. Dieser Modus ist der Standard. |
"evenodd" | (oder „OddEvenFill“) Der Pfad wird nach der „Odd-Even“-Füllregel gefüllt. Bei dieser Regel wird anhand der folgenden Methode ermittelt, ob sich ein Punkt innerhalb der Form befindet. Zeichne eine horizontale Linie von dem Punkt zu einer Stelle außerhalb der Form und zähle die Anzahl der Schnittpunkte. Ist die Anzahl der Schnittpunkte ungerade, befindet sich der Punkt innerhalb der Form. |
![]() | |
Siehe auch fill().
fillStyle : variant
Enthält den aktuell für die Füllung von Formen verwendeten Stil. Der Standard-Füllstil ist deckendes Schwarz („#000000“). Der Stil kann entweder eine Zeichenkette sein, die eine CSS-Farbe enthält, QML color oder ein Canvas-Pinselobjekt. Ungültige Werte werden ignoriert. Diese Eigenschaft akzeptiert verschiedene Farbsyntaxen:
- 'rgb(rot, grün, blau)' – zum Beispiel: 'rgb(255, 100, 55)' oder 'rgb(100 %, 70 %, 30 %)'
- 'rgba(rot, grün, blau, Alpha)' – zum Beispiel: 'rgb(255, 100, 55, 1,0)' oder 'rgb(100 %, 70 %, 30 %, 0,5)'
- „hsl(Farbton, Sättigung, Helligkeit)“
- 'hsla(Farbton, Sättigung, Helligkeit, Alpha)'
- '#RRGGBB' – zum Beispiel: '#00FFCC'
- „#AARRGGBB“ – zum Beispiel: „#8000FFCC“
- SVG-Farbname – zum Beispiel: „black“, „green“ oder „lightsteelblue“
- Qt.hsla(Farbton, Sättigung, Helligkeit, Alpha) – zum Beispiel: Qt.hsla(0,3; 0,7; 1; 1,0)
- Qt.rgba(Rot, Grün, Blau, Alpha) – zum Beispiel: Qt.rgba(0,3, 0,7, 1, 1,0)
Wenn fillStyle oder strokeStyle in einer Schleife mehrfach zugewiesen wird, sollte die Syntax Qt.rgba() gewählt werden, da diese die beste Leistung bietet, weil es sich bereits um einen gültigen Wert aus dem „ QColor “ handelt und nicht jedes Mal geparst werden muss.
![]() | |
![]() |
Siehe auch createLinearGradient(), createRadialGradient(), createConicalGradient(), createBoxGradient(), createBoxShadow(), createPattern(), createGridPattern() und strokeStyle.
font : string
Speichert die aktuellen Schriftarteneinstellungen.
Es wird eine Teilmenge des W3C-2D-Kontextstandards für Schriftarten unterstützt:
- font-style (optional): normal | italic | oblique
- font-variant (optional): normal | small-caps
- font-weight (optional): normal | bold | 1 … 1000
- font-size: Npx | Npt (wobei N eine positive Zahl ist)
- font-family: Siehe http://www.w3.org/TR/CSS2/fonts.html#propdef-font-family
Hinweis: Die Eigenschaften „font-size“ und „font-family“ sind obligatorisch und müssen in der oben angegebenen Reihenfolge angegeben werden. Außerdem muss eine Schriftfamilie, deren Name Leerzeichen enthält, in Anführungszeichen gesetzt werden.
Der Standardwert für die Schriftart lautet „10px sans-serif“.
globalAlpha : real
Enthält den aktuellen Alpha-Wert (Transparenz), der bei der Darstellung angewendet wird. Dieser Alpha-Wert wird auf alle gerenderten Formen angewendet. Bereits transparente Pfade werden ebenfalls proportional transparenter. Der Alpha-Wert sollte zwischen 0,0 (vollständig transparent) und 1,0 (vollständig undurchsichtig) liegen. Standardmäßig beträgt der Alpha-Wert „ 1.0 “.
![]() | |
globalBrightness : real
Enthält den aktuellen Helligkeitswert, der auf die Rendering-Vorgänge angewendet wird. Diese Helligkeit wird auf alle gerenderten Formen angewendet. Bei einem Wert von 0 wird die Darstellung komplett schwarz. Der Wert kann auch größer als 1,0 sein, um die Helligkeit zu erhöhen. Standardmäßig beträgt die Helligkeit „ 1.0 “.
![]() | |
globalCompositeOperation : string
Hält den aktuellen Kompositionsvorgang aufrecht. Dieser Modus gilt für alle Malvorgänge. Zulässige Vorgänge sind:
| Konstant | Beschreibung |
|---|---|
"source-atop" | A über B. Das Quellbild wird überall dort angezeigt, wo beide Bilder undurchsichtig sind. Das Zielbild wird überall dort angezeigt, wo das Zielbild undurchsichtig ist, das Quellbild jedoch transparent. An allen anderen Stellen wird Transparenz angezeigt. |
"source-over" | (Standard) A über B. Das Quellbild wird überall dort angezeigt, wo das Quellbild undurchsichtig ist. An allen anderen Stellen wird das Zielbild angezeigt. |
"destination-out" | B über A. Das Zielbild wird überall dort angezeigt, wo das Zielbild deckend und das Quellbild transparent ist. An allen anderen Stellen wird Transparenz angezeigt. Hinweis: Damit die Kompositionsmodi ordnungsgemäß funktionieren, müssen „ |
![]() | |
globalContrast : real
Speichert den aktuellen Kontrastwert, der bei der Darstellung angewendet wird. Dieser Kontrast wird auf alle dargestellten Formen angewendet. Bei einem Wert von 0 wird die Darstellung vollständig grau (0,5; 0,5; 0,5). Der Wert kann auch größer als 1,0 sein, um den Kontrast zu erhöhen. Standardmäßig beträgt der Kontrast 1.0.
![]() | |
globalSaturation : real
Speichert den aktuellen Sättigungswert, der auf die Rendering-Vorgänge angewendet wird. Diese Sättigung wird auf alle gerenderten Formen angewendet. Der Wert 0 deaktiviert die Sättigung, sodass die Darstellung vollständig in Graustufen erfolgt. Der Wert kann auch größer als 1,0 sein, um die Sättigung zu erhöhen. Standardmäßig beträgt die Sättigung „ 1.0 “.
![]() | |
highQualityStroking : bool
Behält den aktuellen Status für die hochwertige Strichdarstellung bei. Die Einstellung „ true “ sorgt in einigen selteneren Fällen, in denen sich Striche überlappen und nicht vollständig deckend sind, für eine korrektere Darstellung. Die Aktivierung dieser Option führt zu einem höheren Rendering-Aufwand. Der Standardwert ist „ false “.
![]() | |
lineCap : string
Speichert den aktuellen Stil der Linienenden. Folgende Stile für Linienenden sind möglich:
| Konstant | Beschreibung |
|---|---|
"butt" | (Standard) Das Ende jeder Linie hat eine flache Kante, die senkrecht zur Richtung der Linie verläuft. |
"round" | Am Ende der Linie wird ein Halbkreis mit einem Durchmesser hinzugefügt, der der Breite der Linie entspricht. |
"square" | Ein Rechteck, dessen Länge der Linienbreite und dessen Breite der halben Linienbreite entspricht, wird flach an die Kante angelegt, die senkrecht zur Linienrichtung verläuft. |
![]() | |
lineJoin : string
Enthält den aktuellen Verbindungsstil für Linien. Eine Verbindung besteht an jedem Punkt eines Teilpfads, der von zwei aufeinanderfolgenden Linien gemeinsam genutzt wird. Wenn ein Teilpfad geschlossen ist, besteht auch an seinem ersten Punkt (entspricht seinem letzten Punkt) eine Verbindung, die die erste und die letzte Linie des Teilpfads miteinander verbindet.
Die möglichen Verbindungsstile für Linien sind:
| Konstant | Beschreibung |
|---|---|
"bevel" | Die dreieckige Aussparung zwischen den beiden Linien wird ausgefüllt. |
"round" | Ein Kreisbogen zwischen den beiden Linien wird ausgefüllt. |
"miter" | (Standard) Die Außenkanten der Linien werden so verlängert, dass sie sich in einem Winkel treffen, und dieser Bereich wird ausgefüllt. |
![]() | |
Siehe auch „ miterLimit “.
lineWidth : real
Speichert die aktuelle Linienbreite. Die Standard-Linienbreite beträgt „ 1.0 “. Wenn Antialiasing aktiviert ist, wird die Deckkraft der Linienbreiten, die unter ein einzelnes Pixel fallen, automatisch ausgeblendet, wodurch eine glatte Darstellung entsteht.
![]() | |
Siehe auch stroke().
miterLimit : real
Speichert die aktuelle Länge der Gehrungsbegrenzung. Die Gehrungsbegrenzung legt fest, wann eine scharfe Ecke abgeschrägt wird. Wenn die Ecklänge diesen Grenzwert überschreiten würde, wird stattdessen eine „Abschrägung“ lineJoin zwischen den Linien angewendet. Dies wirkt sich nur bei der Linienverbindung „Gehrung“ aus. Der Standardgrenzwert ist 10.0.
![]() | |
Siehe auch „ lineJoin “.
strokeStyle : variant
Enthält die aktuelle Farbe oder den aktuellen Stil, die bzw. der für die Linien um Formen verwendet werden soll. Der Stil kann entweder eine Zeichenkette mit einer CSS-Farbe, QML color oder ein Canvas-Pinselobjekt sein. Ungültige Werte werden ignoriert.
Der Standardwert ist Schwarz („#000000“).
![]() | |
![]() | |
Siehe auch createLinearGradient(), createRadialGradient(), createConicalGradient(), createBoxGradient(), createBoxShadow(), createPattern(), createGridPattern() und fillStyle.
textAlign : string
Speichert die aktuellen Einstellungen für die Textausrichtung. Mögliche Werte sind:
| Konstant | Beschreibung |
|---|---|
"start" | (Standard) Am Anfang des Textes ausrichten (links bei Text von links nach rechts, rechts bei Text von rechts nach links). |
"end" | Am Ende des Textes ausrichten (rechte Seite bei Text von links nach rechts, linke Seite bei Text von rechts nach links). |
"left" | Linksbündig ausrichten. |
"right" | Rechtsbündig ausrichten. |
"center" | Den Text zentrieren. |
![]() | |
Siehe auch textBaseline.
textAntialias : real
Enthält den aktuellen Wert für die Text-Antialiasing-Stärke. Der Wert ist ein Multiplikator für das normale Antialiasing, d. h., dass „ 0.0 “ das Antialiasing deaktiviert und „ 2.0 “ es verdoppelt. Der Standardwert is t 1,0.
Hinweis: Aufgrund der verwendeten Text-Antialiasing-Technik (SDF) ist der maximale Antialiasing-Grad recht begrenzt, was sich bei kleinen Schriftgrößen weniger stark bemerkbar macht.
![]() | |
textBaseline : string
Speichert die aktuellen Einstellungen für die Ausrichtung der Grundlinie. Mögliche Werte sind:
| Konstant | Beschreibung |
|---|---|
"top" | Die Oberkante des em-Quadrats |
"hanging" | Die hängende Grundlinie |
"middle" | Die Mitte des em-Quadrats |
"alphabetic" | (Standard) Die alphabetische Grundlinie |
"bottom" | Der untere Rand des em-Quadrats |
![]() | |
Siehe auch „ textAlign “.
textLineHeight : real
Enthält den aktuellen Wert für die Anpassung der Zeilenhöhe in Pixeln. Die Standardzeilenhöhe beträgt 0.
![]() | |
textWrapMode : string
Speichert den aktuellen Zeilenumbruchmodus, d. h., wie der Text auf mehrere Zeilen umgebrochen wird. Mögliche Werte sind:
| Konstant | Beschreibung |
|---|---|
"nowrap" | (Standard) Es erfolgt kein Zeilenumbruch. Wenn der Text nicht genügend Zeilenumbrüche enthält, überschreitet die Breite des Inhalts („contentWidth“) eine festgelegte Breite. |
"wrap" | Wenn möglich, erfolgt der Zeilenumbruch an einer Wortgrenze; andernfalls erfolgt er an einer geeigneten Stelle in der Zeile, auch mitten in einem Wort. |
"wordwrap" | Der Zeilenumbruch erfolgt ausschließlich an Wortgrenzen. Ist ein Wort zu lang, überschreitet die Inhaltsbreite eine festgelegte Breite. |
"wrapanywhere" | Der Zeilenumbruch erfolgt an einer beliebigen Stelle in einer Zeile, auch wenn dies mitten in einem Wort geschieht. |
Der Standard-Zeilenumbruchmodus ist „ "nowrap" “.
![]() | |
windingEnforce : bool
Behält den aktuellen Status der erzwungenen Kurvenführung bei. Durch Setzen auf „ false “ wird die erzwungene Kurvenführung deaktiviert, sodass die Kurvenführung den in „ setPathWinding()“ festgelegten Einstellungen entspricht. Durch die Deaktivierung können beispielsweise Lücken in Pfaden erzeugt werden, indem Punkte im Uhrzeigersinn hinzugefügt werden. Die Deaktivierung kann zudem die Leistung steigern. Der Standardwert ist „ true “.
![]() | |
Methodendokumentation
void addPath(path2d path, transform2d transform)
Fügt „ path “ in den aktuellen Pfad ein und verwendet dabei optional „ transform “, um die Pfadpunkte zu ändern. Wenn „ transform “ nicht angegeben wird (oder es sich um die Einheitsmatrix handelt), ist dieser Vorgang sehr schnell, da die Pfaddaten wiederverwendet werden.
![]() | |
void addPath(path2d path, int start, int count, transform2d transform)
Fügt „ path “ in den aktuellen Pfad ein, beginnend mit dem Befehl unter start und einschließlich count Befehlen. Optional kann transform verwendet werden, um die Pfadpunkte zu ändern. Der Bereich von start bis count wird überprüft, damit nicht auf mehr Befehle zugegriffen wird, als der Pfad enthält. Falls der Pfad nicht von der aktuellen Pfadposition aus fortgesetzt werden soll, rufen Sie zunächst moveTo() auf.
![]() | |
void arc(real x, real y, real radius, real startAngle, real endAngle, bool anticlockwise)
Erstellt einen neuen Teilpfad in Form eines Kreisbogens. Der Mittelpunkt des Bogens liegt bei x, y, mit radius, und der Bogen wird vom Winkel startAngle bis endAngle gezeichnet. Die Standardrichtung der Kurve ist im Uhrzeigersinn. Um die Richtung in die entgegengesetzte zu ändern, setzen Sie anticlockwise auf „true“. Winkel werden in Radianten angegeben.
![]() | |
Hinweis: Während der HTML-Canvas-2D-Kontext die Funktion `arc()` zum Zeichnen von Kreisen verwendet, wird bei „ Canvas2D “ empfohlen, hierfür die Funktionen ` circle()` oder ` ellipse()` zu verwenden.
Siehe auch „ arcTo “ und den 2D-Kontext-Standard des W3C für „arc()“.
void arcTo(real x1, real y1, real x2, real y2, real radius)
Fügt ein Bogensegment an der Ecke ein, die durch den letzten Pfadpunkt und zwei angegebene Punkte (x1, y1 und x2, y2) mit dem Wert „ radius “ definiert wird. Der Bogen wird bei Bedarf automatisch mit einer geraden Linie an den letzten Punkt des Pfades angeschlossen.
![]() | |
Siehe auch arc und den 2D-Context-Standard des W3C für arcTo().
void beginHoleSubPath()
Einen Teilpfad für ein Loch beginnen. Dies entspricht setPathWinding("clockwise")
![]() | |
Siehe auch ` beginSolidSubPath()`.
void beginPath()
Beginnt mit dem Zeichnen eines neuen Pfades und löscht dabei den aktuellen Pfad.
void beginSolidSubPath()
Starte einen festen Teilpfad. Dies entspricht setPathWinding("counterclockwise")
Siehe auch beginHoleSubPath().
void bezierCurveTo(real cp1x, real cp1y, real cp2x, real cp2y, real x, real y)
Fügt ein kubisches Bézier-Segment vom letzten Punkt des Pfades über zwei Kontrollpunkte (cp1x, cp1y und cp2x, cp2y) bis zum angegebenen Punkt (x, y) hinzu.
![]() | |
Siehe auch den W3C-Standard für den 2D-Kontext bezüglich „bezierCurveTo“.
void circle(real centerX, real centerY, real radius)
Erstellt einen neuen kreisförmigen Teilpfad, dessen Mittelpunkt bei ( centerX, centerY) liegt und dessen Radius radius beträgt.
![]() | |
Hinweis: Im Gegensatz zu ` arc()` fügt diese Methode keine gerade Linie vom letzten Punkt des Teilpfads zum Startpunkt des Kreises hinzu.
void cleanupResources()
Entfernt nicht verwendete Texturen aus dem Cache.
Zudem können beim Aufruf dieser Funktion andere Caches und Pools verkleinert werden, um den Speicherverbrauch zu minimieren. Dies kann möglicherweise zu aufwändigeren Zeichenaufrufen im Anschluss führen.
void clearRect(real x, real y, real width, real height)
Löscht die Pixel in einem rechteckigen Bereich, indem das durch x, y, width und height angegebene Rechteck mit transparentem Schwarz gefüllt wird. Da das Löschen keine Überblendung erfordert, kann es schneller sein als fillRect().
![]() | |
void closePath()
Schließt den aktuellen Teilpfad, indem eine Linie zum Anfang des Teilpfads gezeichnet wird, wodurch automatisch ein neuer Pfad begonnen wird. Der aktuelle Punkt des neuen Pfads ist der erste Punkt des vorherigen Teilpfads.
Siehe auch den W3C-Standard für 2D-Kontexte bezüglich „closePath“.
boxgradient2d createBoxGradient(real x, real y, real width, real height, real feather, real radius)
Gibt ein „ boxgradient2d “-Objekt zurück, das einen Box-Farbverlauf darstellt, der den Rechteckbereich (x, y, width, height) mit einer Auslaufkante (Glättung) feather und einem Eckenradius radius abdeckt.
![]() | |
Siehe auch boxgradient2d::addColorStop(), fillStyle und strokeStyle.
boxshadow2d createBoxShadow(real x, real y, real width, real height)
Gibt ein „ boxshadow2d “-Objekt zurück, das einen Box-Schatten darstellt, der den Bereich des Rechtecks abdeckt (x, y, width, height).
![]() | |
Siehe auch drawBoxShadow().
boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radius)
Gibt ein „ boxshadow2d “-Objekt mit der Farbe color zurück, das einen Kastenschatten darstellt, der den Rechteckbereich (x, y, width, height) mit der Unschärfe blur und dem Eckenradius radius abdeckt.
Siehe auch drawBoxShadow().
boxshadow2d createBoxShadow(real x, real y, real width, real height, real blur, string color, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
Gibt ein „ boxshadow2d “-Objekt mit der Farb color zurück, das einen Kastenschatten darstellt, der den Rechteckbereich (x, y, width, height) mit der Unschärfe blur und dem Eckenradius (radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft) abdeckt.
Siehe auch drawBoxShadow().
conicalgradient2d createConicalGradient(real x, real y, real angle)
Gibt ein „ conicalgradient2d “-Objekt zurück, das einen konischen Farbverlauf darstellt, der Farben gegen den Uhrzeigersinn um einen Mittelpunkt (x, y) mit einem Startwinkel angle in Radiant interpoliert.
![]() | |
Siehe auch conicalgradient2d::addColorStop(), createLinearGradient(), createRadialGradient(), createPattern(), fillStyle und strokeStyle.
gridpattern2d createGridPattern(real x, real y, real width, real height, string lineColor, string backgroundColor, real lineWidth, real feather, real angle)
Gibt ein „ gridpattern2d “-Objekt zurück, das den rechteckigen Bereich abdeckt (x, y, width, height). Das Raster verwendet „ lineColor “ für die Linien und „ backgroundColor “ für den Hintergrund. Die Linienbreite beträgt „ lineWidth “, die Linienauslaufkante „ feather “ und der Drehwinkel „ angle “ in Radianten.
![]() | |
lineargradient2d createLinearGradient(real x0, real y0, real x1, real y1)
Gibt ein „ lineargradient2d “-Objekt zurück, das einen linearen Farbverlauf darstellt, bei dem die Farbe entlang einer Linie zwischen dem Startpunkt (x0, y0) und dem Endpunkt (x1, y1) übergeht.
Farbverläufe müssen zwei oder mehr Farbstopps aufweisen, die Farbverläufe zwischen 0 und 1 zwischen dem Start- und Endpunkt des Farbverlaufs darstellen.
![]() | |
Siehe auch lineargradient2d::addColorStop(), createRadialGradient(), createConicalGradient(), createPattern(), fillStyle und strokeStyle.
path2d createPath2D()
Gibt ein neues „path2d“-Objekt zurück. Der Aufruf dieser Funktion entspricht dem HTML-Canvas-Befehl „new Path2D()“.
Siehe auch „ fill()“ und „ stroke()“.
path2d createPath2D(path2d path)
Gibt ein neues „path2d“-Objekt zurück, das eine Kopie von path enthält. Der Aufruf dieser Funktion entspricht dem HTML-Canvas-Befehl „new Path2D(path)“.
Siehe auch „ fill()“ und „ stroke()“.
path2d createPath2D(string svgPath)
Gibt ein neues `Path2D`-Objekt zurück, dessen Inhalt dem von ` svgPath` entspricht. Der Aufruf dieser Funktion entspricht dem HTML-Canvas-Befehl „new Path2D(d)“.
Siehe auch „ fill()“ und „ stroke()“.
imagepattern2d createPattern(Image image, string repetition)
Gibt ein „ imagepattern2d “-Objekt zurück, das das angegebene Bild verwendet und es in der/den durch das Argument „repetition“ angegebenen Richtung(en) wiederholt.
Der Parameter ` image ` muss ein gültiges `Image`-Element oder eine geladene Bild-URL sein. Wenn keine Bilddaten vorhanden sind, löst diese Funktion eine `INVALID_STATE_ERR`-Ausnahme aus.
Die zulässigen Werte für „ repetition “ sind:
| Konstante | Beschreibung |
|---|---|
"repeat" | beide Richtungen |
"repeat-x | nur horizontal |
"repeat-y" | nur vertikal |
"no-repeat" | keine |
Ist das Argument „repeat“ leer oder null, wird der Wert „repeat“ verwendet.
![]() | |
Siehe auch strokeStyle und fillStyle.
radialgradient2d createRadialGradient(real x0, real y0, real r0, real x1, real y1, real r1)
Gibt ein „ radialgradient2d “-Objekt zurück, das einen radialen Farbverlauf darstellt, der entlang des Kegels gezeichnet wird, der durch den Startkreis mit dem Ursprung (x0, y0) und dem Radius r0 sowie den Endkreis mit dem Ursprung (x1, y1) und dem Radius r1 definiert ist.
Da nur 4 Parameter vorhanden sind, werden diese als (x, y, r0, r1) verwendet, wobei die Mittelpunktposition für den inneren und den äußeren Radius identisch ist.
![]() | |
![]() | |
Siehe auch radialgradient2d::addColorStop(), createLinearGradient(), createConicalGradient(), createPattern(), fillStyle und strokeStyle.
transform2d createTransform2D()
Gibt ein neues `transform2d`-Objekt zurück, das mit der Einheitsmatrix initialisiert ist.
Siehe auch ` getTransform()`.
void drawBoxShadow(boxshadow2d shadow)
Zeichnet ein angegebenes Rechteck shadow. Der Schatten wird mit Position, Größe, Farbe, Weichzeichnung usw. gezeichnet, die durch shadow definiert sind. Ein vorheriger Aufruf von beginPath() ist nicht erforderlich.
![]() | |
Siehe auch createBoxShadow().
void drawImage(variant image, real dx, real dy)
Zeichnet das angegebene „ image “ auf der Leinwand an der Position (dx, dy). Hinweis: Der Typ „ image “ kann ein „Image“-Element oder eine Bild-URL sein. Wenn ein „Image“-Element angegeben wird und das Bild noch nicht vollständig geladen ist, zeichnet diese Methode nichts. Wenn eine URL-Zeichenkette angegeben wird, sollte das Bild zuvor durch Aufruf der Methode „ Canvas2D::loadImage()“ des „Canvas“-Elements geladen werden. Diese Zeichnung unterliegt dem aktuellen Kontext-Clip-Pfad.
![]() | |
Siehe auch „Image“, „ Canvas2D::loadImage “, „ Canvas2D::isImageLoaded “, „ Canvas2D::imageLoaded “ und den W3C-2D-Kontextstandard für „drawImage“.
void drawImage(variant image, real dx, real dy, real dw, real dh)
Dies ist eine überladene Funktion. Zeichnet das angegebene Element als „ image “ auf die Leinwand am Punkt (dx, dy) mit der Breite „ dw “ und der Höhe „ dh “.
![]() | |
Siehe auch „Image“, „ Canvas2D::loadImage()“, „ Canvas2D::isImageLoaded “, „ Canvas2D::imageLoaded “ und den W3C-2D-Kontextstandard für „drawImage“.
void drawImage(variant image, real sx, real sy, real sw, real sh, real dx, real dy, real dw, real dh)
Dies ist eine überladene Funktion. Zeichnet das angegebene Element als „ image “ ausgehend vom Quellpunkt (sx, sy) sowie der Quellbreite sw und der Quellhöhe sh auf die Leinwand am Punkt (dx, dy) mit der Breite dw und der Höhe dh.
![]() | |
Siehe auch „Image“, „ Canvas2D::loadImage()“, „ Canvas2D::isImageLoaded “, „ Canvas2D::imageLoaded “ sowie den W3C-2D-Kontextstandard für „drawImage“.
void ellipse(real centerX, real centerY, real radiusX, real radiusY)
Erstellt einen neuen ellipsenförmigen Teilpfad, dessen Mittelpunkt bei ( centerX, centerY) liegt und dessen Radius radiusX und radiusY beträgt.
![]() | |
void ellipseRect(real x, real y, real width, real height)
Erstellt einen neuen ellipsenförmigen Teilpfad innerhalb des Rechtecks: x, y, width, height. Diese Ellipse bedeckt den Bereich des Rechtecks.
![]() | |
Hinweis: Diese Methode entspricht QtQuick::Context2D::ellipse()
void fill()
Füllt den aktuellen Pfad mit dem aktuellen Füllstil und der aktuellen Füllregel.
![]() | |
Siehe auch „ fillStyle “, „ fillRule “ und den W3C-Standard für 2D-Kontexte zum Thema „Füllung“.
void fill(string fillRule)
Füllt den aktuellen Pfad mit dem aktuellen Füllstil und der Füllregel „ fillRule “.
Siehe auch fillStyle und fillRule.
void fill(path2d path, int pathGroup)
Füllt den „ path “ mit dem aktuellen Füllstil und der aktuellen Füllregel und ordnet ihn dem optionalen „ pathGroup “ zu. Das Zeichnen über „ QCanvasPath “ ist optimal, wenn der Pfad mehr Befehle enthält und größtenteils statisch ist.
Wenn „ pathGroup “ auf „ -1 “ gesetzt ist, wird der Pfad nicht auf der GPU-Seite zwischengespeichert. Dies ist die Standardeinstellung. Um die Zwischenspeicherung von Pfaddaten anzufordern, übergeben Sie einen Wert, der gleich oder größer als „ 0 “ ist. Weitere Informationen zur Verwendung von Pfad-Cache-Gruppen finden Sie in der Dokumentation unter „ QCanvasPath “.
Ein Aufruf von ` beginPath()` vor dieser Methode ist nicht erforderlich.
![]() | |
Siehe auch „ fillStyle “ und „ path2d “.
void fill(path2d path, string fillRule, int pathGroup)
Füllt die „ path “ mit dem aktuellen Füllstil und unter Verwendung von „ fillRule “. Der Cache-Gruppenparameter „ pathGroup “ ist optional.
Siehe auch „ fillStyle “, „ fillRule “ und „ path2d “.
void fillRect(real x, real y, real width, real height)
Zeichnet ein gefülltes Rechteck an der angegebenen Position ( x, y) mit der Größe width, height.
Hinweis: Diese Funktion dient der Vereinfachung. Wenn Sie mehr als nur ein Rechteck füllen möchten, verwenden Sie vorzugsweise ` rect()`.
![]() | |
Siehe auch fillStyle.
void fillText(text, x, y, maxWidth)
Zeichnet die Zeichenkette „ text “ an der angegebenen Stelle ( x, y) mit den aktuellen Werten für „ textAlign “ und „ textBaseline “. Um den Text in mehrere Zeilen umbrechen zu lassen, legen Sie den Zeilenumbruchmodus mithilfe von „ textWrapMode “ auf einen anderen Wert als den Standardwert „ "nowrap" “ fest. Der optionale Parameter „ maxWidth “ ist standardmäßig auf „ 0 “ gesetzt. Das bedeutet, dass der Text beispielsweise bei der Einstellung „ "wordwrap" “ nach jedem Wort umgebrochen wird. Setzen Sie den Parameter „ maxWidth “ auf die gewünschte Zeilenbreite in Pixeln.
![]() | |
Siehe auch font, textAlign, textBaseline und textWrapMode.
void fillText(text, x, y, width, height)
Zeichnet die Zeichenkette „ text “ innerhalb des Rechtecks (x, y, width, height) mit den aktuellen Werten für „ textAlign “ und „ textBaseline “. Die Breite des Parameters „rect“ wird als „maxWidth“ verwendet.
Oft ist es sinnvoll, die Textgrundlinie auf TextBaseline::Top oder TextBaseline::Middle festzulegen, wenn Text mit dieser Methode gezeichnet wird.
![]() | |
Siehe auch font, textAlign, textBaseline und textWrapMode.
transform2d getTransform()
Gibt die aktuelle Transformationsmatrix zurück.
Siehe auch ` setTransform()`.
void lineTo(real x, real y)
Zeichnet eine Linie von der aktuellen Position zu dem Punkt mit den Koordinaten (x, y).
![]() | |
object measureText(text)
Gibt ein Objekt mit der Eigenschaft „ width “ zurück, deren Wert dem Aufruf von „ QFontMetricsF::horizontalAdvance()“ mit dem angegebenen „ text “ in der aktuellen Schriftart entspricht.
void moveTo(real x, real y)
Erstellt einen neuen Teilpfad mit einem Punkt bei (x, y).
void quadraticCurveTo(real cpx, real cpy, real x, real y)
Fügt ein quadratisches Bézier-Segment vom letzten Punkt des Pfades über einen Kontrollpunkt (cpx, cpy) bis zum angegebenen Punkt (x, y) hinzu.
![]() | |
Siehe auch den W3C-Standard für den 2D-Kontext bezüglich „quadraticCurveTo“.
void rect(real x, real y, real width, real height)
Erstellt einen neuen rechteckigen Teilpfad an der Position x, y mit den Abmessungen width, height.
![]() | |
void removePathGroup(int pathGroup)
Entfernt „ pathGroup “ aus dem Painter-Cache. Wenn anschließend „ fill()“ oder „ stroke()“ für „ pathGroup “ aufgerufen wird, wird der Pfad im Gruppen-Cache neu generiert.
Hinweis: Diese Funktion muss normalerweise nicht aufgerufen werden, da Pfade im Destruktor des „Painter“ entfernt werden. Verwenden Sie diese Funktion nur, um den Speicherverbrauch zu reduzieren, wenn „ pathGroup “ nicht mehr benötigt wird oder wenn der Pfad beispielsweise deutlich weniger Befehle enthält als zuvor und die Puffergröße verringert werden soll.
Siehe auch „ fill()“ und „ stroke()“.
void reset()
Setzt den aktuellen Zustand des Painters auf die Standardwerte zurück.
Hinweis: Diese Methode unterscheidet sich von der Methode „reset()“ des HTML-Canvas-2D-Kontexts, da sie die Canvas-Puffer nicht visuell löscht.
![]() | |
Siehe auch „ save()“ und „ restore()“.
void resetClipping()
Setzt die Clipping-Einstellung zurück und deaktiviert sie.
Siehe auch „ setClipRect()“.
void resetTransform()
Setzt die Transformationsmatrix auf den Standardwert zurück (entspricht dem Aufruf von setTransform(1, 0, 0, 1, 0, 0)).
Siehe auch transform(), setTransform() und reset().
void restore()
Ruft den aktuellen Render-Zustand ab und stellt ihn wieder her. Der zuvor gespeicherte Zustand wird somit wiederhergestellt. Wenn save() noch nicht aufgerufen wurde und der Zustandsstapel leer ist, hat der Aufruf dieser Funktion keine Auswirkung.
Siehe auch ` save()`.
void rotate(real angle)
Dreht das aktuelle Koordinatensystem um angle im Uhrzeigersinn.
Der Winkel wird in Radianten angegeben.
![]() | |
void roundRect(real x, real y, real width, real height, real radius)
Erstellt einen neuen Teilpfad in Form eines abgerundeten Rechtecks an der Position x, y mit den Abmessungen width, height. Die Ecken werden wie folgt abgerundet: radius.
![]() | |
void roundRect(real x, real y, real width, real height, real radiusTopLeft, real radiusTopRight, real radiusBottomRight, real radiusBottomLeft)
Erstellt einen neuen Teilpfad in Form eines abgerundeten Rechtecks an der Position x, y mit den Abmessungen width, height. Die Eckenrundung kann je nach Ecke variieren, mit den Werten radiusTopLeft, radiusTopRight, radiusBottomRight, radiusBottomLeft.
![]() | |
void save()
Speichert den aktuellen Render-Zustand in einem Zustandsstapel. Zum Wiederherstellen des Zustands muss die entsprechende Methode „ restore()“ aufgerufen werden.
Hinweis: Der aktuelle Pfad ist NICHT Teil des Zeichnungszustands. Der Pfad kann durch Aufruf der Methode ` beginPath()` zurückgesetzt werden.
![]() | |
Siehe auch ` restore()`.
void scale(real scale)
Skaliert das aktuelle Koordinatensystem um den Faktor scale. Sowohl die x- als auch die y-Koordinaten werden gleichmäßig skaliert.
![]() | |
void scale(real sx, real sy)
Vergrößert oder verkleinert die Größe jeder Einheit im Canvas-Raster, indem die Skalierungsfaktoren mit der aktuellen Transformationsmatrix multipliziert werden. „ sx “ ist der Skalierungsfaktor in horizontaler Richtung und „ sy “ ist der Skalierungsfaktor in vertikaler Richtung.
Der folgende Code verdoppelt die horizontale Größe eines auf der Leinwand gezeichneten Objekts und halbiert dessen vertikale Größe:
ctx.scale(2.0, 0.5);void setClipRect(real x, real y, real width, real height)
Setzt das aktuelle Ausschnittrechteck auf (x, y, width, height). Das Ausschnittrechteck wird durch die aktuelle Transformation transformiert.
Hinweis: Das Clipping ist mit einem gewissen Leistungsaufwand verbunden und sollte nur bei Bedarf verwendet werden.
![]() | |
Siehe auch resetClipping().
void setPathWinding(string winding)
Legt den aktuellen Teilpfad „ winding “ entweder auf „counterclockwise“ (Standard) oder „clockwise“ fest. Bei „counterclockwise“ werden geschlossene Teilpfade gezeichnet, bei „clockwise“ hingegen Löcher.
![]() | |
Siehe auch beginHoleSubPath() und beginSolidSubPath().
void setTransform(transform2d transform)
Setzt die aktuelle Transformation zurück und verwendet stattdessen „ transform “.
![]() | |
Siehe auch „ transform()“ und „ getTransform()“.
void setTransform(real a, real b, real c, real d, real e, real f)
Ändert die Transformationsmatrix in die durch die Argumente angegebene Matrix, wie unten beschrieben.
Durch die direkte Änderung der Transformationsmatrix können Sie Skalierungs-, Dreh- und Verschiebungstransformationen in einem einzigen Schritt durchführen.
Jeder Punkt auf der Leinwand wird mit der Matrix multipliziert, bevor etwas gezeichnet wird. Die HTML-Canvas-2D-Context-Spezifikation definiert die Transformationsmatrix wie folgt:
- a der Skalierungsfaktor in horizontaler (x-)Richtung ist
- c der Schräglagefaktor in der x-Richtung ist
- e die Verschiebung in x-Richtung ist
- b der Schräglagenfaktor in der y-Richtung (vertikal) ist
- d der Skalierungsfaktor in y-Richtung ist
- f ist die Verschiebung in y-Richtung
- die letzte Zeile bleibt konstant
Die Skalierungs- und Schrägstellungsfaktoren sind Vielfache; e und f sind Einheiten des Koordinatenraums, genau wie die Einheiten in der Methode translate(x,y).
Siehe auch ` transform()`.
void skew(real angleX, real angleY)
Verschiebt (verzerrt) das aktuelle Koordinatensystem entlang der X-Achse um angleX und entlang der Y-Achse um angleY. Der Standardwert von angleY ist 0, wenn nur ein einziger Parameter angegeben wird. Die Winkel werden in Radianten angegeben.
![]() | |
void stroke()
Zeichnet den aktuellen Pfad mit dem aktuellen Strichstil nach.
![]() | |
Siehe auch „ strokeStyle “ und den W3C-Standard für den „2D Context“-Stroke.
void stroke(path2d path, int pathGroup)
Zeichnet den Pfad „ path “ mit dem aktuellen Zeichenstil und ordnet ihn „ pathGroup “ zu. Das Zeichnen über „ QCanvasPath “ ist optimal, wenn der Pfad mehr Befehle enthält und weitgehend statisch ist.
Wenn „ pathGroup “ auf „ -1 “ gesetzt ist, werden die rendernbezogenen Daten des Pfades nicht zwischengespeichert. Dies ist die Standardeinstellung. Um die Zwischenspeicherung von Pfaddaten zu erzwingen, übergeben Sie einen Wert, der gleich oder größer als „ 0 “ ist. Weitere Informationen zur Verwendung von Pfad-Cache-Gruppen finden Sie in der Dokumentation zu „ QCanvasPath “.
Der Aufruf von ` beginPath()` vor dieser Methode ist nicht erforderlich.
![]() | |
Siehe auch „ strokeStyle “, „ path2d “ und den W3C-2D-Kontextstandard für „stroke“.
void strokeRect(real x, real y, real width, real height)
Zeichnet ein umrandetes Rechteck an der angegebenen Position ( x, y) mit der Größe width, height.
Hinweis: Diese Funktion dient der Vereinfachung. Wenn Sie mehr als nur ein Rechteck mit Umrandung zeichnen möchten, verwenden Sie vorzugsweise ` rect()`.
![]() | |
Siehe auch strokeStyle, lineWidth, lineJoin und miterLimit.
void transform(transform2d transform)
Multipliziert das aktuelle Koordinatensystem mit dem angegebenen Skalierungsfaktor transform.
![]() | |
Siehe auch setTransform().
void transform(real a, real b, real c, real d, real e, real f)
Multipliziert das aktuelle Koordinatensystem mit der angegebenen Transformation (a, b, c, d, e, f).
Diese Methode ähnelt „ setTransform()“, doch anstatt die alte Transformationsmatrix zu ersetzen, wendet diese Methode die angegebene Transformationsmatrix auf die aktuelle Matrix an, indem sie mit dieser multipliziert wird.
Siehe auch setTransform().
void translate(real x, real y)
Verschiebt das aktuelle Koordinatensystem um x und 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.




































































