QCanvasPath Class
QCanvasPath は、QCanvasPainter のネイティブパス形式です。詳細...
| ヘッダー: | #include <QCanvasPath> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 以下より: | Qt 6.11 |
パブリック関数
| QCanvasPath() | |
| QCanvasPath(qsizetype commandsSize, qsizetype commandsDataSize = -1) | |
| QCanvasPath(const QCanvasPath &path) | |
| QCanvasPath(QCanvasPath &&other) | |
| ~QCanvasPath() | |
(since 6.12) void | addPath(QStringView svgPath, const QTransform &transform = QTransform()) |
| void | addPath(const QCanvasPath &path, const QTransform &transform = QTransform()) |
| void | addPath(const QCanvasPath &path, qsizetype start, qsizetype count, const QTransform &transform = QTransform()) |
| void | arc(qreal centerX, qreal centerY, qreal radius, qreal a0, qreal a1, QCanvasPainter::PathWinding direction = QCanvasPainter::PathWinding::ClockWise, QCanvasPainter::PathConnection connection = QCanvasPainter::PathConnection::Connected) |
| void | arc(QPointF centerPoint, qreal radius, qreal a0, qreal a1, QCanvasPainter::PathWinding direction = QCanvasPainter::PathWinding::ClockWise, QCanvasPainter::PathConnection connection = QCanvasPainter::PathConnection::Connected) |
| void | arcTo(qreal x1, qreal y1, qreal x2, qreal y2, qreal radius) |
| void | arcTo(QPointF point1, QPointF point2, qreal radius) |
| void | beginHoleSubPath() |
| void | beginSolidSubPath() |
| void | bezierCurveTo(qreal cp1X, qreal cp1Y, qreal cp2X, qreal cp2Y, qreal x, qreal y) |
| void | bezierCurveTo(QPointF controlPoint1, QPointF controlPoint2, QPointF endPoint) |
| void | circle(qreal x, qreal y, qreal radius) |
| void | circle(QPointF centerPoint, qreal radius) |
| void | clear() |
| void | closePath() |
| qsizetype | commandsCapacity() const |
| qsizetype | commandsDataCapacity() const |
| qsizetype | commandsDataSize() const |
| qsizetype | commandsSize() const |
| QPointF | currentPosition() const |
| void | ellipse(qreal x, qreal y, qreal radiusX, qreal radiusY) |
| void | ellipse(const QRectF &rect) |
| bool | isEmpty() const |
| void | lineTo(QPointF point) |
| void | lineTo(qreal x, qreal y) |
| void | moveTo(QPointF point) |
| void | moveTo(qreal x, qreal y) |
| QPointF | positionAt(qsizetype index) const |
| void | quadraticCurveTo(qreal cpX, qreal cpY, qreal x, qreal y) |
| void | quadraticCurveTo(QPointF controlPoint, QPointF endPoint) |
| void | rect(qreal x, qreal y, qreal width, qreal height) |
| void | rect(const QRectF &rect) |
| void | reserve(qsizetype commandsSize, qsizetype commandsDataSize = -1) |
| void | roundRect(qreal x, qreal y, qreal width, qreal height, qreal radius) |
| void | roundRect(qreal x, qreal y, qreal width, qreal height, qreal radiusTopLeft, qreal radiusTopRight, qreal radiusBottomRight, qreal radiusBottomLeft) |
| void | roundRect(const QRectF &rect, qreal radius) |
| void | roundRect(const QRectF &rect, qreal radiusTopLeft, qreal radiusTopRight, qreal radiusBottomRight, qreal radiusBottomLeft) |
| void | setPathWinding(QCanvasPainter::PathWinding winding) |
| QCanvasPath | sliced(qsizetype start, qsizetype count, const QTransform &transform = QTransform()) const |
| void | squeeze() |
| void | swap(QCanvasPath &other) |
| operator QVariant() const | |
| QCanvasPath & | operator=(QCanvasPath &&other) |
| QCanvasPath & | operator=(const QCanvasPath &path) |
関連する非メンバー
| bool | operator!=(const QCanvasPath &lhs, const QCanvasPath &rhs) |
| bool | operator==(const QCanvasPath &lhs, const QCanvasPath &rhs) |
詳細な説明
ペインターパスとは、矩形、楕円、直線、曲線などのグラフィカルな構成要素の集合から成るオブジェクトです。QCanvasPath API は、QCanvasPainter のパス描画と互換性があり、直接描画とパスへの描画の間でコードを容易に調整できるようにします。 QCanvasPath を使用する主な理由は、静的でレンダリングのすべてのフレームで使用されるパスを再作成することを避け、パスの塗りつぶしやストロークを行うたびにデータを再生成するのではなく、パスに関連するレンダリングデータ(そこから生成される頂点データやインデックスデータなど)のキャッシュを可能にするためです。
QPainterPath と比較して、QCanvasPathはレンダリング向けに最適化されており、パスの比較や調整に関する機能は少なくなっています。具体的には:
- 2つのパス間の交差や差分を行うメソッドはありません。
- パスを平行移動させるメソッドはありません。
- テキストを追加するメソッドはありません。
機能面から見ると、QCanvasPathはHTMLCanvasのPath2Dに近く、いくつかの機能が追加されており、APIはQCanvasPainter と整合しています。
パスグループとキャッシュ
QCanvasPath を使用してパスを描画すると、エンジンはパスのジオメトリ(頂点)をキャッシュすることができます。これにより、静的なパスのパフォーマンスは向上しますが、CPU および GPU のメモリ消費量が増加する可能性があります。
QCanvasPath をパラメータとして受け取るfill()またはstroke()を使用してパスを描画する場合、2番目のパラメータとしてpathGroup を設定することができます。
デフォルトでは、pathGroup は-1 に設定されています。これは、パスデータのキャッシュが試みられないことを意味し、そのため、beginPath() を使用して直接描画し、続いてパス定義コマンドを実行し、最後に塗りつぶしまたはストロークを行う場合とほぼ同じようにレンダリングが行われます。
pathGroup を0 またはそれ以上の数値に設定すると、パスの生成されたジオメトリのキャッシュと再利用が有効になります。パスをパスグループに整理することで、レンダリング性能とメモリ使用量の効率的な最適化が可能になります。関連性があり、頻繁に同時に変更されるパスは、最適な結果を得るために同じグループに含めるべきです。
パスが変更されると、そのデータはキャッシュされていた場合でも自動的に更新されます。パスグループのジオメトリ更新を引き起こす要因は以下の通りです:
- パス要素の削除、または新しい要素の追加。
- ストロークの線幅の変更(QCanvasPainter::setLineWidth()、ストロークに適用されます)。
- アンチエイリアシング量の調整(QCanvasPainter::setAntialias()、塗りつぶしとストロークの両方に適用)。
- 線の端形や接合部のタイプを変更すること(QCanvasPainter::setLineCap()、QCanvasPainter::setLineJoin()、ストロークに関連)。
- winding enforce の変更(塗りつぶしとストロークの両方に関連)。
- high quality stroking の変更(塗りつぶしとストロークの両方に適用されます)。
状態変換(QCanvasPainter::transform()、QCanvasPainter::rotate() など)を変更してもパスが無効化されるわけではないため、キャッシュされたパスの移動、拡大縮小、回転は非常に効率的です。
例として、非常に多くのコマンドを含む QCanvasPathp を考えてみましょう。このパスp に対してストロークや塗りつぶしを行うと、CPU 側で実行される作業量が多いため、処理負荷が高くなる可能性があります。 各フレームごとに、これらのストロークや塗りつぶし操作のたびに、頂点データが再生成され、GPUバッファにアップロードされる可能性があります。パスが静的で、単に各フレームで可能な限り効率的に繰り返し描画したいだけの場合、これは理想的ではありません。
パスグループが指定されている場合(例えば、stroke(p) をstroke(p, 5) に置き換えた場合)、レンダラーは、パスp および、ストロークや塗りつぶしコマンドで同じグループ(5 )が指定されている他のすべてのパスに対して、専用の頂点バッファとインデックスバッファを維持するオプションを持っています。
パスp (QCanvasPath 内のコマンド)が変更されないことを前提とすると、このパスに対して繰り返し塗りつぶしやストロークを行う操作は低コストになります。これは、パスグループ5 に割り当てられた GPU バッファにすべてのデータがすでに存在しているためです。また、キャッシュされたパスグループでは、変換がジオメトリ自体ではなく頂点シェーダー内で行われるため、変換処理も低コストです。
以下のコードスニペットでは、m_path が十分に複雑で、そのコマンドが変更されず、すべてのフレームで同じストローク幅やアンチエイリアシング量などで描画される場合、以下の方法はパスグループを使用しない場合よりも大幅に効率的になります:
// m_path is QCanvasPath with lots of commands in it
const int pathGroup = 5;
// in every frame:
painter->stroke(m_path, pathGroup);
// ... other draw commands
painter->translate(100, 0);
painter->stroke(m_path, pathGroup);
// ... other draw commandsm_path を2回目、3回目、それ以降にストロークする場合、CPU側でパスジオメトリの処理を行う必要がないため、パスグループを使用しない場合と比較してレンダリングのオーバーヘッドが大幅に低減されます。並進変換を適用してトランスフォームを変更しても、キャッシュされたパスグループデータは無効化されないため、変換後のstroke()呼び出しも同様に高速です。
上記で挙げた関連する状態のいずれかが変化した場合はどうなるでしょうか? 例えば、パスを2つの異なるストローク幅で描画する場合を考えてみましょう:
// m_path is QCanvasPath with lots of commands in it
const int pathGroup = 5;
// in every frame:
painter->setStrokeWidth(4);
painter->stroke(m_path, pathGroup);
// ... other draw commands
painter->translate(100, 0);
painter->setStrokeWidth(8);
painter->stroke(m_path, pathGroup);
// ... other draw commandsこの場合でも、パス頂点データはキャッシュされ、ストローク幅4と8の両方で再利用されるため、依然として非常に効率的です。ただし、パスグループ5 用のGPUバッファには、ストローク幅4と8の両方のパスジオメトリが含まれることになるため、リソース使用量はわずかに増加します。
パスグループを捉える一つの方法は、キャッシュメカニズムとして考えることです。この場合、パスグループの値が第1レベルのキャッシュキーとして扱われ、QCanvasPathオブジェクト、アンチエイリアシング量、レンダリングヒント、およびストロークの場合はストローク幅、ラインキャップ、ラインジョインが、 (パスグループ内)を構成します。
パスコマンド(QCanvasPath 内の要素)の変更は、CPU および GPU 側で関連データの再構築を常に引き起こすため、常に負荷が高くなります。 やや極端な例を挙げると、QCanvasPath がフレームごとにコマンドを変更する場合、QCanvasPainter 関数を用いた直接的なパス描画と比較してメリットがないため、その特定のパスに対してパスグループ(さらには QCanvasPath 自体)を使用する意味はありません。
描画でパスグループが今後使用されなくなった場合、またはアプリケーションがメモリを可能な限り解放したい場合は、QCanvasPainter::removePathGroup() を呼び出すことでキャッシュを解放できます。キャッシュされたパスはペインターのデストラクタ内で自動的に解放されるため、通常はこの操作は必要ありません。
QCanvasPainter::addPath() およびQCanvasPainter::removePathGroup()も参照してください 。
メンバ関数のドキュメント
QCanvasPath::QCanvasPath()
空のパスを構築します。
[explicit] QCanvasPath::QCanvasPath(qsizetype commandsSize, qsizetype commandsDataSize = -1)
空のパスを構築し、commandsSize 個のコマンド分と、オプションでcommandsDataSize 分のデータ分の領域を割り当てます。commandsDataSize パラメータが指定されていない場合、2 * commandsSize 分のデータ分が自動的に確保されます。これは、パスのコマンドが直線(moveTo()、lineTo()、rect())である場合に最適な量です。
適切なスペースを確保することは、パスの作成とメモリ使用量の最適化につながります。ただし、パスにコマンドを追加する際に十分なスペースが自動的に確保されるため、これは必須ではありません。
reserve()も参照してください 。
QCanvasPath::QCanvasPath(const QCanvasPath &path)
指定されたpath のコピーとなるパスを構築します。
[noexcept] QCanvasPath::QCanvasPath(QCanvasPath &&other)
other から新しい QCanvasPath を生成します。
[noexcept] QCanvasPath::~QCanvasPath()
パスを削除します。
[since 6.12] void QCanvasPath::addPath(QStringView svgPath, const QTransform &transform = QTransform())
このパスにsvgPath を追加します。必要に応じて、transform を使用してパスのポイントを変更することもできます。パスの推定サイズがわかっている場合は、その前にreserve()を呼び出すことを検討してください。
![]() | |
このフォーマットの詳細については、W3C SVG Path Data を参照してください。
この関数は Qt 6.12 で導入されました。
void QCanvasPath::addPath(const QCanvasPath &path, const QTransform &transform = QTransform())
このパスにpath を追加します。必要に応じてtransform を使用してパスポイントを変更することもできます。transform が指定されていない場合(またはそれが単位行列である場合)、パスデータを再利用するため、この操作は非常に高速に実行されます。
void QCanvasPath::addPath(const QCanvasPath &path, qsizetype start, qsizetype count, const QTransform &transform = QTransform())
start のコマンドから始まり、count 個のコマンドを含む、path を現在のパスに追加します。オプションで、transform を使用してパスポイントを変更することもできます。start とcount の範囲がチェックされるため、QCanvasPath::commandsSize( ) を超えるコマンドにはアクセスされません。現在のパス位置からパスを継続させない場合は、まずpath.positionAt(start - 1) を指定してmoveTo() を呼び出してください。
void QCanvasPath::arc(qreal centerX, qreal centerY, qreal radius, qreal a0, qreal a1, QCanvasPainter::PathWinding direction = QCanvasPainter::PathWinding::ClockWise, QCanvasPainter::PathConnection connection = QCanvasPainter::PathConnection::Connected)
QPointF (centerX 、centerY )を中心とし、指定されたradius を持つ円弧を作成します。この円弧は、a0 ラジアンの角度から始まり、a1 ラジアンの角度で終わります。この円弧は、指定されたdirection の範囲をカバーします。connection がNotConnected の場合、前のパスが閉じられ、新しいサブパスが開始されます。
void QCanvasPath::arc(QPointF centerPoint, qreal radius, qreal a0, qreal a1, QCanvasPainter::PathWinding direction = QCanvasPainter::PathWinding::ClockWise, QCanvasPainter::PathConnection connection = QCanvasPainter::PathConnection::Connected)
centerPoint を中心とし、指定されたradius を用いて、a0 ラジアンの角度から始まり、a1 ラジアンの角度で終わる弧を作成します。この弧は、指定されたdirection の範囲をカバーします。connection がNotConnected の場合、前のパスは閉じられ、新しいサブパスが開始されます。
これはオーバーロードされた関数です。
void QCanvasPath::arcTo(qreal x1, qreal y1, qreal x2, qreal y2, qreal radius)
QPointF (x1 、y1 )およびQPointF (x2 、y2 )の各点と、指定されたradius を用いて円弧を作成します。
void QCanvasPath::arcTo(QPointF point1, QPointF point2, qreal radius)
指定されたradius を用いて、点point1 およびpoint2 からなる円弧を作成します。
これはオーバーロードされた関数です。
void QCanvasPath::beginHoleSubPath()
「hole」サブパスを開始します。これは、setPathWinding(QCanvasPainter::PathWinding::ClockWise)) と同等です。
beginSolidSubPath()」も参照してください 。
void QCanvasPath::beginSolidSubPath()
堅実なサブパスを開始します。これは、setPathWinding(QCanvasPainter::PathWinding::CounterClockWise)) と同等です。
beginHoleSubPath()も参照してください 。
void QCanvasPath::bezierCurveTo(qreal cp1X, qreal cp1Y, qreal cp2X, qreal cp2Y, qreal x, qreal y)
cp1X 、cp1Y 、cp2X 、およびcp2Y で指定された制御点を使用し、現在の位置とx およびy で指定された終点との間に3次ベジェ曲線を追加します。
曲線が追加されると、現在の位置は曲線の終点に更新されます。
void QCanvasPath::bezierCurveTo(QPointF controlPoint1, QPointF controlPoint2, QPointF endPoint)
controlPoint1 で指定された制御点とcontrolPoint2 を使用して、現在の位置と指定されたendPoint の間に3次ベジェ曲線を追加します。
曲線が追加された後、現在の位置は曲線の終点に更新されます。
これはオーバーロードされた関数です。
void QCanvasPath::circle(qreal x, qreal y, qreal radius)
QPointF(x,y) を中心とし、指定されたradius を持つ円をパスに追加します。
void QCanvasPath::circle(QPointF centerPoint, qreal radius)
centerPoint を中心とし、指定されたradius を持つ円をパスに追加します。
これはオーバーロードされた関数です。
void QCanvasPath::clear()
パスコマンドとデータをクリアします。
パスコマンドが変更された際に、この関数を呼び出してパスを再構築してください。これはメモリ使用量には影響しません。メモリ使用量の管理には、reserve() およびsqueeze() を使用してください。
reserve() およびsqueeze()も参照してください 。
void QCanvasPath::closePath()
現在のサブパスを、その先頭まで線を引いて閉じ、自動的に新しいパスを開始します。
qsizetype QCanvasPath::commandsCapacity() const
パス内のコマンドの容量を返します。
commandsDataCapacity() およびreserve()も参照してください 。
qsizetype QCanvasPath::commandsDataCapacity() const
指定されたパスにある「commands」データの容量を返します。
commandsCapacity() およびreserve()も参照してください 。
qsizetype QCanvasPath::commandsDataSize() const
パス内のコマンドデータの数を返します。
コマンドデータとは、基本的にコマンドに必要なポイントを指します。
注:一部の パス要素では、複数のデータポイントが必要となります。例えば、closePath には0 、moveTo およびlineTo には2 、bezierCurveTo には6、roundRect には34 のデータポイントが必要です。
qsizetype QCanvasPath::commandsSize() const
パス内のコマンドの数を返します。
注:一部の パス要素では、複数のコマンドが必要です。たとえば、moveTo やlineTo には1 コマンドが、bezierCurveTo には6 コマンドが、roundRect には10 コマンドが必要です。
QPointF QCanvasPath::currentPosition() const
パスの現在の位置を返します。これは、直前のパスコマンド(moveTo 、lineTo 、bezierCurveTo など)が終了した位置を指します。パスが空の場合は、(0.0, 0.0)を返します。
void QCanvasPath::ellipse(qreal x, qreal y, qreal radiusX, qreal radiusY)
(x,y) を中心とし、半径をradiusX 、radiusY で定義された楕円を作成し、それを閉じたサブパスとしてパスに追加します。
void QCanvasPath::ellipse(const QRectF &rect)
矩形rect 内に楕円を作成し、それを閉じたサブパスとしてパスに追加します。
これはオーバーロードされた関数です。
bool QCanvasPath::isEmpty() const
パスが空の場合、true を返します。
clearも参照してください 。
void QCanvasPath::lineTo(QPointF point)
現在の位置から指定されたpoint まで直線を追加します。線が描画された後、現在の位置は線の終点に更新されます。
これはオーバーロードされた関数です。
void QCanvasPath::lineTo(qreal x, qreal y)
現在の位置から点 (x,y) まで線を引きます。
これはオーバーロードされた関数です。
void QCanvasPath::moveTo(QPointF point)
現在のポイントを指定されたpoint に移動し、暗黙的に新しいサブパスを開始するとともに、前のサブパスを終了します。
これはオーバーロードされた関数です。
void QCanvasPath::moveTo(qreal x, qreal y)
現在の位置を (x,y) に移動し、新しいサブパスを開始すると同時に、前のパスを暗黙的に閉じます。
これはオーバーロードされた関数です。
QPointF QCanvasPath::positionAt(qsizetype index) const
index におけるパスの位置を返します。これは、index における path コマンド(moveTo 、lineTo 、bezierCurveTo など)の位置を指します。インデックスは、0 からcommandsSize() - 1 の範囲内である必要があります。パスが空の場合、(0.0, 0.0) を返します。
void QCanvasPath::quadraticCurveTo(qreal cpX, qreal cpY, qreal x, qreal y)
現在の点と終点 (x,y) の間に、制御点 (cpX,cpY) で指定された2次ベジェ曲線を追加します。
void QCanvasPath::quadraticCurveTo(QPointF controlPoint, QPointF endPoint)
現在の位置と指定されたendPoint の間に、controlPoint で指定された制御点を持つ2次ベジェ曲線を追加します。
これはオーバーロードされた関数です。
void QCanvasPath::rect(qreal x, qreal y, qreal width, qreal height)
指定されたwidth およびheight を用いて、QPointF(x,y) に位置する長方形を作成します。
void QCanvasPath::rect(const QRectF &rect)
以下で指定された長方形を作成します。rect
これはオーバーロードされた関数です。
void QCanvasPath::reserve(qsizetype commandsSize, qsizetype commandsDataSize = -1)
QCanvasPath の内部メモリに、指定された容量分の領域を確保します。
少なくともcommandsSize 個のコマンドとcommandsDataSize 個のデータポイント分のメモリを割り当てようとします。一部のパス要素では複数のコマンドが必要となる場合があります。詳細はcommandsSize() およびcommandsDataSize() を参照してください。
commandsDataSize が指定されていない場合、2 * commandsSize のデータ量分が自動的に確保されます。これは、パスコマンドが直線(moveTo()、lineTo()、rect())である場合の最適な量です。
適切なスペースを確保することは、パスの作成とメモリ使用量の最適化につながります。ただし、パスにコマンドを追加する際に十分なスペースが自動的に確保されるため、必須ではありません。
squeeze()、commandsCapacity()、およびcommandsDataCapacity()も参照してください 。
void QCanvasPath::roundRect(qreal x, qreal y, qreal width, qreal height, qreal radius)
指定された矩形x 、y 、width 、height を、角を丸めた状態でパスに追加します。角は、指定されたradius に基づく四分円となります。
void QCanvasPath::roundRect(qreal x, qreal y, qreal width, qreal height, qreal radiusTopLeft, qreal radiusTopRight, qreal radiusBottomRight, qreal radiusBottomLeft)
角が丸い矩形x 、y 、width 、height をパスに追加します。角は、それぞれ半径radiusTopLeft 、radiusTopRight 、radiusBottomRight 、radiusBottomLeft の4分の1円となっています。
void QCanvasPath::roundRect(const QRectF &rect, qreal radius)
指定された角が丸い矩形rect をパスに追加します。角は、指定されたradius に基づく4分の1円となります。
これはオーバーロードされた関数です。
void QCanvasPath::roundRect(const QRectF &rect, qreal radiusTopLeft, qreal radiusTopRight, qreal radiusBottomRight, qreal radiusBottomLeft)
角が丸い長方形(rect )をパスに追加します。角は、それぞれ半径radiusTopLeft 、radiusTopRight 、radiusBottomRight 、radiusBottomLeft を持つ四分円です。
これはオーバーロードされた関数です。
void QCanvasPath::setPathWinding(QCanvasPainter::PathWinding winding)
現在のサブパス「winding 」を、「QCanvasPainter::CounterClockWise 」(デフォルト)または「QCanvasPainter::ClockWise 」のいずれかに設定します。「CounterClockWise」は実線のサブパスを描画し、「ClockWise」は穴を描画します。
QCanvasPath QCanvasPath::sliced(qsizetype start, qsizetype count, const QTransform &transform = QTransform()) const
このパスに含まれるコマンドのうち、start にあるコマンドから始まり、count 個のコマンドを含む新しいパスを返します。必要に応じて、transform を使用してパスの分岐点を変更することもできます。
start とcount の範囲がチェックされ、commandsSize() を超えるコマンドにはアクセスされないようにします。start にあるコマンドがMoveTo でない場合、このスライスが独立したパスとなるよう、最初のコマンドはMoveTo に置き換えられます。
void QCanvasPath::squeeze()
パスコマンドやデータの保存に不要なメモリを解放します。これは、reserve() を呼び出した後のメモリ使用量を削減するために使用できます。
通常、これを使用する必要はありませんが、多くの要素を予約または追加した(lineTo 、bezierCurveTo など)ためにパスサイズが大きくなり、今後サイズが大幅に小さくなると予想される場合、まずreserve() を呼び出し、次にsqueeze() を呼び出すことで、一部のメモリを解放することができます。
reserve()も参照してください 。
[noexcept] void QCanvasPath::swap(QCanvasPath &other)
このパスをother と入れ替えます。この操作は非常に高速で、失敗することはありません。
QCanvasPath::operator QVariant() const
パスをQVariant として返します。
[noexcept] QCanvasPath &QCanvasPath::operator=(QCanvasPath &&other)
other をこのQCanvasPath インスタンスに割り当てます。
QCanvasPath &QCanvasPath::operator=(const QCanvasPath &path)
指定されたpath をこのパスに割り当て、このパスへの参照を返します。
関連する非メンバー
[noexcept] bool operator!=(const QCanvasPath &lhs, const QCanvasPath &rhs)
パス `lhs ` が `rhs` と異なる場合は `true ` を返し、それ以外の場合は `false ` を返します。
operator==()も参照してください 。
[noexcept] bool operator==(const QCanvasPath &lhs, const QCanvasPath &rhs)
パス `lhs ` が `rhs` と等しい場合は `true ` を返し、それ以外の場合は `false ` を返します。
operator!=()も参照してください 。
© 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.
