このページでは

QCanvasImagePattern Class

QCanvasImagePattern は、画像パターンを描画するためのブラシです。詳細...

ヘッダー: #include <QCanvasImagePattern>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
以下より: Qt 6.11

パブリック関数

QCanvasImagePattern(const QCanvasImage &image)
QCanvasImagePattern(const QCanvasImage &image, QPointF startPosition, QSizeF imageSize)
QCanvasImagePattern(const QCanvasImage &image, qreal startX, qreal startY, qreal imageWidth, qreal imageHeight)
QCanvasImagePattern(const QCanvasImagePattern &)
QCanvasImagePattern(QCanvasImagePattern &&)
QCanvasImage image() const
QSizeF imageSize() const
qreal rotation() const
void setImage(const QCanvasImage &image)
void setImageSize(qreal width, qreal height)
void setImageSize(QSizeF size)
void setRotation(qreal rotation)
void setStartPosition(qreal x, qreal y)
void setStartPosition(QPointF point)
void setTintColor(QColor color)
QPointF startPosition() const
QColor tintColor() const
operator QVariant() const
bool operator!=(const QCanvasImagePattern &lhs, const QCanvasImagePattern &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasImagePattern &pattern)
bool operator==(const QCanvasImagePattern &lhs, const QCanvasImagePattern &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasImagePattern &pattern)

詳細な説明

QCanvasImagePatternは、画像パターンを描画するためのブラシです。QCanvasImage をパターンとして使用するには、QCanvasPainter::ImageFlag::Repeat のように、いくつかの繰り返しフラグが有効になっている必要があります。

以下に簡単な例を示します。

// Setup 2 image patterns
static QImage image1(":/pattern2.png");
static QImage image2(":/pattern3.png");
auto flags = QCanvasPainter::ImageFlag::Repeat |
             QCanvasPainter::ImageFlag::GenerateMipmaps;
QCanvasImage bg1 = painter.addImage(image1, flags);
QCanvasImage bg2 = painter.addImage(image2, flags);
QCanvasImagePattern ip1(bg1, 0, 0, 64, 64);
QCanvasImagePattern ip2(bg2, 0, 0, 32, 32);
// Fill and stroke round rectangle with
// these image pattern brushes.
painter.beginPath();
painter.roundRect(50, 50, 180, 180, 40);
painter.setFillStyle(ip1);
painter.setStrokeStyle(ip2);
painter.fill();
painter.setLineWidth(20);
painter.stroke();

同心円の模様が施された角が丸い正方形のタイルで、縁には緑色の斜めストライプのボーダーがある

注: 画像パターンを使用する場合 、画像はしばしば縮小されるため、滑らかなパターンを得るには、使用するQCanvasImage に対してQCanvasPainter::ImageFlag::GenerateMipmaps を設定しておくと便利です。

メンバー関数のドキュメント

QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image)

画像パターンを生成します。パターンにはimage が使用されます。なお、image には通常、少なくともQCanvasPainter::ImageFlag::Repeat フラグが設定されている必要があることにご注意ください。パターンの開始位置は(0, 0)、パターンサイズは(100, 100)です。パターンの角度は0.0、色調は白(色調なし)です。

QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image, QPointF startPosition, QSizeF imageSize)

image を使用して、startPosition から開始し、imageSize に画像を描画する画像パターンを構築します。なお、image には通常、少なくともQCanvasPainter::ImageFlag::Repeat フラグが設定されている必要がある点にご注意ください。

setStartPosition() およびsetImageSize()も参照してください 。

QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image, qreal startX, qreal startY, qreal imageWidth, qreal imageHeight)

image を使用して、startX 、startY を起点とし、imageWidth 、imageHeight に画像を描画する画像パターンを構築します。なお、image には通常、少なくともQCanvasPainter::ImageFlag::Repeat フラグが設定されている必要がある点にご注意ください。

setRotation() およびsetTintColor()も参照してください 。

QCanvasImagePattern::QCanvasImagePattern(const QCanvasImagePattern &)

画像パターンを削除します。

[constexpr noexcept default] QCanvasImagePattern::QCanvasImagePattern(QCanvasImagePattern &&)

QCanvasImagePattern のインスタンスをMoveコンストラクタで生成します。

QCanvasImage QCanvasImagePattern::image() const

パターンの画像を返します。

setImage()も参照してください 。

QSizeF QCanvasImagePattern::imageSize() const

pattern 内の単一の画像のサイズを返します。

setImageSize()も参照してください 。

qreal QCanvasImagePattern::rotation() const

パターンの回転角度をラジアン単位で返します。

setRotation()も参照してください 。

void QCanvasImagePattern::setImage(const QCanvasImage &image)

パターンの画像を `image` に設定します。注:画像パターンで画像を使用する場合、通常は `Repeat ` フラグを設定する必要があります。

image()も参照してください 。

void QCanvasImagePattern::setImageSize(qreal width, qreal height)

pattern 内の個々の画像のサイズを (width,height) に設定します。

imageSize()も参照してください 。

void QCanvasImagePattern::setImageSize(QSizeF size)

pattern 内の個々の画像のサイズを `size` に設定します。

これはオーバーロードされた関数です。

void QCanvasImagePattern::setRotation(qreal rotation)

パターンの回転角度をラジアン単位でrotation に設定します。回転は画像startPosition()を基準に行われます。デフォルト値は0.0 であり、これは画像が回転されないことを意味します。

rotation()も参照してください 。

void QCanvasImagePattern::setStartPosition(qreal x, qreal y)

画像パターンの開始点を (x,y) に設定します。開始位置とは、パターン内の画像の左上隅を指します。その後、この位置からすべての位置へとパターンが拡張されます(Repeat フラグが設定されている場合)。

startPosition()も参照してください 。

void QCanvasImagePattern::setStartPosition(QPointF point)

画像パターンの開始点をpoint に設定します。開始位置とは、パターン内の画像の左上隅を指します。その後、この位置からすべての位置へとパターンが拡張されます(画像のRepeat フラグが設定されている場合)。

これはオーバーロードされた関数です。

void QCanvasImagePattern::setTintColor(QColor color)

パターンの色調を「color 」に設定します。シェーダー内で、パターン画像の色にこの色調が乗算されます。デフォルト値は白で、色調が適用されないことを意味します。

注: アルファをグローバルに設定するには 、QCanvasPainter::setGlobalAlpha() を使用してください。

関連項目: tintColor()。

QPointF QCanvasImagePattern::startPosition() const

画像パターンの開始点を返します。

setStartPosition()も参照してください 。

QColor QCanvasImagePattern::tintColor() const

パターンの色合いを返します。

setTintColor()も参照してください 。

QCanvasImagePattern::operator QVariant() const

画像パターンをQVariant として返します。

関連する非メンバー

[noexcept] bool operator!=(const QCanvasImagePattern &lhs, const QCanvasImagePattern &rhs)

画像パターン `lhs ` が `rhs` と異なる場合は `true ` を返し、それ以外の場合は `false ` を返します。

operator==()も参照してください 。

QDataStream &operator<<(QDataStream &stream, const QCanvasImagePattern &pattern)

指定されたpattern を指定されたstream に書き込み、stream への参照を返します。

「Qt データ型のシリアライズ」も参照してください 。

[noexcept] bool operator==(const QCanvasImagePattern &lhs, const QCanvasImagePattern &rhs)

画像パターン `lhs ` が `rhs` と等しい場合は `true ` を返し、それ以外の場合は `false ` を返します。

operator!=()も参照してください 。

QDataStream &operator>>(QDataStream &stream, QCanvasImagePattern &pattern)

指定されたstream から指定されたpattern を読み込み、stream への参照を返します。

「Qtデータ型のシリアライズ」も参照してください 。

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