QCanvasImagePattern Class
QCanvasImagePattern is a brush for painting image patterns. More...
| Header: | #include <QCanvasImagePattern> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Since: | Qt 6.11 |
Public Functions
| QCanvasImagePattern(const QCanvasImage &image) | |
| QCanvasImagePattern(const QCanvasImage &image, int startPosition, int imageSize) | |
| QCanvasImagePattern(const QCanvasImage &image, int startX, int startY, int imageWidth, int imageHeight) | |
| QCanvasImagePattern(const QCanvasImagePattern &) | |
| QCanvasImagePattern(QCanvasImagePattern &&) | |
| QCanvasImage | image() const |
| int | imageSize() const |
| int | rotation() const |
| void | setImage(const QCanvasImage &image) |
| void | setImageSize(int width, int height) |
| void | setImageSize(int size) |
| void | setRotation(int rotation) |
| void | setStartPosition(int x, int y) |
| void | setStartPosition(int point) |
| void | setTintColor(int color) |
| int | startPosition() const |
| int | tintColor() const |
Related Non-Members
| int & | operator<<(int &stream, const QCanvasImagePattern &pattern) |
| int & | operator>>(int &stream, QCanvasImagePattern &pattern) |
Detailed Description
QCanvasImagePattern is a brush for painting image patterns. To use QCanvasImage as a pattern, it should have some repeat flags turned on like QCanvasPainter::ImageFlag::Repeat.
Here is a simple example:
// 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();

Note: When using image patterns, images are often scaled to smaller and it can be useful to set QCanvasPainter::ImageFlag::GenerateMipmaps for the used QCanvasImage to have smooth patterns.
Member Function Documentation
QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image)
Constructs an image pattern. Pattern will use image. Please note that image should usually have at least QCanvasPainter::ImageFlag::Repeat flag set. Pattern start position position is (0, 0) and pattern size (100, 100). Pattern angle is 0.0 and tint color white (no tinting).
QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image, int startPosition, int imageSize)
Constructs an image pattern using image, starting at startPosition and with the image drawn at imageSize. Please note that image should usually have at least QCanvasPainter::ImageFlag::Repeat flag set.
See also setStartPosition() and setImageSize().
QCanvasImagePattern::QCanvasImagePattern(const QCanvasImage &image, int startX, int startY, int imageWidth, int imageHeight)
Constructs an image pattern using image, starting at startX, startY and with the image drawn at imageWidth, imageHeight. Please note that image should usually have at least QCanvasPainter::ImageFlag::Repeat flag set.
See also setRotation() and setTintColor().
QCanvasImagePattern::QCanvasImagePattern(const QCanvasImagePattern &)
Destroys the image pattern.
[constexpr noexcept default] QCanvasImagePattern::QCanvasImagePattern(QCanvasImagePattern &&)
Move-constructs an instance of QCanvasImagePattern.
QCanvasImage QCanvasImagePattern::image() const
Returns the image of the pattern.
See also setImage().
int QCanvasImagePattern::imageSize() const
Returns the size of a single image in pattern.
See also setImageSize().
int QCanvasImagePattern::rotation() const
Returns the pattern rotation in radians.
See also setRotation().
void QCanvasImagePattern::setImage(const QCanvasImage &image)
Sets the image of the pattern to image. Note: Image should usually have Repeat flag set when used in image pattern.
See also image().
void QCanvasImagePattern::setImageSize(int width, int height)
Sets the size of a single image in pattern to ( width, height).
See also imageSize().
void QCanvasImagePattern::setImageSize(int size)
Sets the size of a single image in pattern to size.
This is an overloaded function.
void QCanvasImagePattern::setRotation(int rotation)
Sets the pattern rotation to rotation in radians. Rotation is done around the image startPosition(). The default value is 0.0, meaning the image is not rotated.
See also rotation().
void QCanvasImagePattern::setStartPosition(int x, int y)
Sets the start point of image pattern to (x, y). Start position means top-left corner of an image in pattern. Pattern will then be extended to all positions from here (if image Repeat flag has been set).
See also startPosition().
void QCanvasImagePattern::setStartPosition(int point)
Sets the start point of image pattern to point. Start position means top-left corner of an image in pattern. Pattern will then be extended to all positions from here (if image Repeat flag has been set).
This is an overloaded function.
void QCanvasImagePattern::setTintColor(int color)
Sets the pattern tint color to color. The color of the pattern image will be multiplied with this tint color in the shader. The default value is white, meaning no tinting.
Note: To set alpha globally, use QCanvasPainter::setGlobalAlpha()
See also tintColor().
int QCanvasImagePattern::startPosition() const
Returns the start point of image pattern.
See also setStartPosition().
int QCanvasImagePattern::tintColor() const
Returns the pattern tint color.
See also setTintColor().
Related Non-Members
int &operator<<(int &stream, const QCanvasImagePattern &pattern)
Writes the given pattern to the given stream and returns a reference to the stream.
See also Serializing Qt Data Types.
int &operator>>(int &stream, QCanvasImagePattern &pattern)
Reads the given pattern from the given stream and returns a reference to the stream.
See also Serializing Qt Data Types.