このページでは

QBrush Class

QBrush クラスは、QPainter によって描画される図形の塗りつぶしパターンを定義します。詳細...

ヘッダー: #include <QBrush>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

パブリック関数

QBrush()
QBrush(Qt::BrushStyle style)
QBrush(const QGradient &gradient)
QBrush(const QImage &image)
QBrush(const QPixmap &pixmap)
QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)
QBrush(Qt::GlobalColor color, const QPixmap &pixmap)
QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern)
QBrush(const QColor &color, const QPixmap &pixmap)
QBrush(const QBrush &other)
~QBrush()
const QColor &color() const
const QGradient *gradient() const
bool isOpaque() const
void setColor(const QColor &color)
void setColor(Qt::GlobalColor color)
void setStyle(Qt::BrushStyle style)
void setTexture(const QPixmap &pixmap)
void setTextureImage(const QImage &image)
void setTransform(const QTransform &matrix)
Qt::BrushStyle style() const
void swap(QBrush &other)
QPixmap texture() const
QImage textureImage() const
QTransform transform() const
operator QVariant() const
bool operator!=(const QBrush &brush) const
QBrush &operator=(QBrush &&other)
QBrush &operator=(const QBrush &brush)
(since 6.9) QBrush &operator=(QColor color)
(since 6.9) QBrush &operator=(Qt::BrushStyle style)
(since 6.9) QBrush &operator=(Qt::GlobalColor color)
bool operator==(const QBrush &brush) const
QDataStream &operator<<(QDataStream &stream, const QBrush &brush)
QDataStream &operator>>(QDataStream &stream, QBrush &brush)

詳細な説明

ブラシには、スタイル、色、グラデーション、およびテクスチャがあります。

ブラシのstyle() は、Qt::BrushStyle 列挙型を使用して塗りつぶしパターンを定義します。デフォルトのブラシスタイルはQt::NoBrush です(ブラシの構築方法によって異なります)。このスタイルは、図形を塗りつぶさないようペインタに指示します。 塗りつぶしの標準スタイルはQt::SolidPattern です。スタイルは、適切なコンストラクタを使用してブラシを作成する際に設定できます。さらに、setStyle()関数を使用することで、ブラシの作成後にスタイルを変更することも可能です。

ブラシのスタイル

ブラシの `color()` は、塗りつぶしパターンの色を定義します。色は、Qtの定義済み色 `Qt::GlobalColor` のいずれか、または任意のカスタム色 `QColor` のいずれかです。現在設定されている色は、それぞれ `color()` および `setColor()` 関数を使用して取得および変更できます。

gradient Qt::LinearGradientPattern Qt::RadialGradientPattern Qt::ConicalGradientPattern QGradient QLinearGradient 、 、 の 3 種類のグラデーションが提供されており、これらはすべて を継承しています。QConicalGradient QRadialGradient QGradient

    QRadialGradient gradient(50, 50, 50, 50, 50);
    gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1));
    gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));

    QBrush brush(gradient);

texture() は、現在のスタイルがQt::TexturePattern の場合に使用されるピクマップを定義します。テクスチャ付きのブラシを作成するには、ブラシの作成時にピクマップを指定するか、setTexture() を使用します。

なお、setTexture() を適用すると、以前のスタイル設定にかかわらず、style() ==Qt::TexturePattern となります。また、スタイルがグラデーションの場合、setColor() を呼び出しても変化はありません。スタイルがQt::TexturePattern の場合も同様ですが、現在のテクスチャがQBitmap である場合は例外です。

isOpaque() 関数は、ブラシが完全に不透明な場合はtrue を返し、それ以外の場合は false を返します。ブラシが不透明であるとみなされるのは、以下の条件を満たす場合です:

  • color()のアルファ成分が255である場合。
  • そのtexture()にアルファチャンネルがなく、かつQBitmap ではない場合。
  • gradient()内のすべての色のアルファ成分が255である。
輪郭線のある、互いに重なり合う2つの長方形線や輪郭線のスタイルや色を指定するには、QPainter のpen に、Qt::PenStyle およびQt::GlobalColor を組み合わせて使用します:
QPainter painter(this);

painter.setBrush(Qt::cyan);
painter.setPen(Qt::darkCyan);
painter.drawRect(0, 0, 100,100);

painter.setBrush(Qt::NoBrush);
painter.setPen(Qt::darkGreen);
painter.drawRect(40, 40, 100, 100);

なお、デフォルトでは、QPainter は図形を描画する際に(現在設定されているペンを使用して)アウトラインを描画します。この動作を無効にするには、 painter.setPen(Qt::NoPen) を使用して、この動作を無効にできます。

描画全般に関する詳細については、「Paint System」を参照してください。

Qt::BrushStyle 、QPainter 、およびQColorも参照してください 。

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

QBrush::QBrush()

スタイル「Qt::NoBrush 」を持つ、デフォルトの黒いブラシを作成します(つまり、このブラシでは図形を塗りつぶすことはできません)。

QBrush::QBrush(Qt::BrushStyle style)

指定されたstyle を使用して、黒いブラシを作成します。

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

QBrush::QBrush(const QGradient &gradient)

指定されたgradient に基づいてブラシを作成します。

ブラシのスタイルは、対応するグラデーションスタイル(Qt::LinearGradientPattern 、Qt::RadialGradientPattern 、またはQt::ConicalGradientPattern のいずれか)に設定されます。

QBrush::QBrush(const QImage &image)

指定されたimage に設定されたテクスチャを持ち、色が黒のブラシを作成します。スタイルはQt::TexturePattern に設定されます。

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

QBrush::QBrush(const QPixmap &pixmap)

指定されたpixmap に設定されたテクスチャを持ち、色が黒のブラシを作成します。スタイルはQt::TexturePattern に設定されます。

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

QBrush::QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)

指定されたcolor およびstyle を使用してブラシを作成します。

setColor() およびsetStyle()も参照してください 。

QBrush::QBrush(Qt::GlobalColor color, const QPixmap &pixmap)

指定されたcolor と、pixmap に保存されているカスタムパターンを使用して、ブラシを作成します。

スタイルはQt::TexturePattern に設定されます。色はQBitmapに対してのみ有効です。

setColor() およびsetTexture()も参照してください 。

QBrush::QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern)

指定されたcolor およびstyle を使用して、ブラシを作成します。

setColor() およびsetStyle()も参照してください 。

QBrush::QBrush(const QColor &color, const QPixmap &pixmap)

指定されたcolor と、pixmap に保存されているカスタムパターンを使用して、ブラシを作成します。

スタイルは `Qt::TexturePattern` に設定されます。色は QBitmap に対してのみ有効です。

setColor() およびsetTexture()も参照してください 。

QBrush::QBrush(const QBrush &other)

other のコピーを作成します。

[noexcept] QBrush::~QBrush()

ブラシを破壊する。

const QColor &QBrush::color() const

ブラシの色を返します。

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

const QGradient *QBrush::gradient() const

このブラシを表すグラデーションを返します。

bool QBrush::isOpaque() const

ブラシが完全に不透明な場合は `true ` を返し、そうでない場合は `false` を返します。ブラシは、以下の条件を満たす場合に不透明とみなされます。

  • color() のアルファ成分が 255 である。
  • そのtexture()にアルファチャンネルがなく、かつQBitmap ではない場合。
  • gradient()内のすべての色のアルファ成分が255である。
  • これは拡張放射状グラデーションです。

void QBrush::setColor(const QColor &color)

ブラシの色を、指定されたcolor に設定します。

なお、スタイルがグラデーションの場合、setColor() を呼び出しても変化はありません。また、スタイルが `Qt::TexturePattern ` である場合も、現在のテクスチャが `QBitmap` でない限り、同様の結果となります。

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

void QBrush::setColor(Qt::GlobalColor color)

ブラシの色を指定されたcolor に設定します。

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

void QBrush::setStyle(Qt::BrushStyle style)

ブラシのスタイルを「style 」に設定します。

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

void QBrush::setTexture(const QPixmap &pixmap)

ブラシのピクマップを `pixmap` に設定します。スタイルは `Qt::TexturePattern` に設定されます。

現在のブラシの色は、モノクロのピクマップ、すなわち `QPixmap::depth()` == 1(`QBitmaps`)の場合にのみ影響します。

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

void QBrush::setTextureImage(const QImage &image)

ブラシ画像を `image` に設定します。スタイルは `Qt::TexturePattern` に設定されます。

なお、QBitmap を指定してsetTexture()を呼び出す場合とは異なり、現在のブラシの色はモノクロ画像には影響しません。モノクロ画像のブラシの色を変更したい場合は、QBitmap::fromImage() を使用して画像をQBitmap に変換し、その結果得られるQBitmap をテクスチャとして設定するか、画像のカラーテーブルのエントリを変更してください。

textureImage() およびsetTexture()も参照してください 。

void QBrush::setTransform(const QTransform &matrix)

matrix を現在のブラシの明示的な変換行列として設定します。ブラシの変換行列は、QPainter の変換行列と統合され、最終的な結果が生成されます。

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

Qt::BrushStyle QBrush::style() const

ブラシのスタイルを返します。

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

[noexcept] void QBrush::swap(QBrush &other)

このブラシをother と入れ替えます。この操作は非常に高速で、失敗することはありません。

QPixmap QBrush::texture() const

カスタムブラシパターンを返します。カスタムブラシパターンが設定されていない場合は、nullのピクマップを返します。

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

QImage QBrush::textureImage() const

カスタムブラシパターンを返します。カスタムブラシパターンが設定されていない場合は、null画像を返します。

テクスチャがQPixmap として設定されていた場合、QImage に変換されます。

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

QTransform QBrush::transform() const

ブラシの現在の変換行列を返します。

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

QBrush::operator QVariant() const

そのブラシをQVariant

bool QBrush::operator!=(const QBrush &brush) const

ブラシが指定されたbrush と異なる場合はtrue を返し、そうでない場合はfalse を返します。

2つのブラシは、スタイル、色、変形が異なる場合、またはスタイルに応じてピクマップやグラデーションが異なる場合に、異なるものとみなされます。

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

[noexcept] QBrush &QBrush::operator=(QBrush &&other)

other をこのQBrush インスタンスに割り当てます。

QBrush &QBrush::operator=(const QBrush &brush)

指定されたbrush をこのブラシに割り当て、このブラシへの参照を返します。

[since 6.9] QBrush &QBrush::operator=(QColor color)

[since 6.9] QBrush &QBrush::operator=(Qt::GlobalColor color)

このブラシを、指定されたcolor の単色パターンブラシにし、このブラシへの参照を返します。

これらの関数は Qt 6.9 で導入されました。

[since 6.9] QBrush &QBrush::operator=(Qt::BrushStyle style)

このブラシを、指定されたstyle の黒いブラシにし、このブラシへの参照を返します。

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

この関数は Qt 6.9 で導入されました。

bool QBrush::operator==(const QBrush &brush) const

ブラシが指定されたbrush と等しい場合はtrue を返し、そうでない場合はfalse を返します。

2つのブラシは、スタイル、色、変形が等しく、かつスタイルに応じてピクマップまたはグラデーションが等しい場合に等しいとみなされます。

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

関連する非メンバー関数

QDataStream &operator<<(QDataStream &stream, const QBrush &brush)

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

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

QDataStream &operator>>(QDataStream &stream, QBrush &brush)

指定されたstream から指定されたbrush を読み取り、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.