QPainter Class

QPainter クラスは、ウィジェットやその他のペイント・デバイスに対して低レベルのペイントを行います。詳細...

Header: #include <QPainter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherited By:

QStylePainter

注意:このクラスの関数はすべてリエントラントです。

パブリック型

class PixmapFragment
enum CompositionMode { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, CompositionMode_Destination, …, RasterOp_SourceOrNotDestination }
enum PixmapFragmentHint { OpaqueHint }
flags PixmapFragmentHints
enum RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform, VerticalSubpixelPositioning, LosslessImageRendering, NonCosmeticBrushPatterns }
flags RenderHints

パブリック関数

QPainter()
QPainter(QPaintDevice *device)
~QPainter()
const QBrush &background() const
Qt::BGMode backgroundMode() const
bool begin(QPaintDevice *device)
void beginNativePainting()
QRectF boundingRect(const QRectF &rectangle, int flags, const QString &text)
QRect boundingRect(const QRect &rectangle, int flags, const QString &text)
QRectF boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
QRect boundingRect(int x, int y, int w, int h, int flags, const QString &text)
const QBrush &brush() const
QPoint brushOrigin() const
QRectF clipBoundingRect() const
QPainterPath clipPath() const
QRegion clipRegion() const
QTransform combinedTransform() const
QPainter::CompositionMode compositionMode() const
QPaintDevice *device() const
const QTransform &deviceTransform() const
void drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
void drawArc(const QRect &rectangle, int startAngle, int spanAngle)
void drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
void drawChord(const QRect &rectangle, int startAngle, int spanAngle)
void drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawConvexPolygon(const QPointF *points, int pointCount)
void drawConvexPolygon(const QPolygon &polygon)
void drawConvexPolygon(const QPolygonF &polygon)
void drawConvexPolygon(const QPoint *points, int pointCount)
void drawEllipse(const QRectF &rectangle)
void drawEllipse(const QRect &rectangle)
void drawEllipse(const QPoint &center, int rx, int ry)
void drawEllipse(const QPointF &center, qreal rx, qreal ry)
void drawEllipse(int x, int y, int width, int height)
void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
void drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QPoint &point, const QImage &image)
void drawImage(const QPointF &point, const QImage &image)
void drawImage(const QRect &rectangle, const QImage &image)
void drawImage(const QRectF &rectangle, const QImage &image)
void drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawLine(const QLineF &line)
void drawLine(const QLine &line)
void drawLine(const QPoint &p1, const QPoint &p2)
void drawLine(const QPointF &p1, const QPointF &p2)
void drawLine(int x1, int y1, int x2, int y2)
void drawLines(const QLineF *lines, int lineCount)
void drawLines(const QList<QLine> &lines)
void drawLines(const QList<QLineF> &lines)
void drawLines(const QList<QPoint> &pointPairs)
void drawLines(const QList<QPointF> &pointPairs)
void drawLines(const QLine *lines, int lineCount)
void drawLines(const QPoint *pointPairs, int lineCount)
void drawLines(const QPointF *pointPairs, int lineCount)
void drawPath(const QPainterPath &path)
void drawPicture(const QPointF &point, const QPicture &picture)
void drawPicture(const QPoint &point, const QPicture &picture)
void drawPicture(int x, int y, const QPicture &picture)
void drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
void drawPie(const QRect &rectangle, int startAngle, int spanAngle)
void drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QPoint &point, const QPixmap &pixmap)
void drawPixmap(const QPointF &point, const QPixmap &pixmap)
void drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
void drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
void drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
void drawPixmap(int x, int y, const QPixmap &pixmap)
void drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
void drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints())
void drawPoint(const QPointF &position)
void drawPoint(const QPoint &position)
void drawPoint(int x, int y)
void drawPoints(const QPointF *points, int pointCount)
void drawPoints(const QPolygon &points)
void drawPoints(const QPolygonF &points)
void drawPoints(const QPoint *points, int pointCount)
void drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolyline(const QPointF *points, int pointCount)
void drawPolyline(const QPolygon &points)
void drawPolyline(const QPolygonF &points)
void drawPolyline(const QPoint *points, int pointCount)
void drawRect(const QRectF &rectangle)
void drawRect(const QRect &rectangle)
void drawRect(int x, int y, int width, int height)
void drawRects(const QRectF *rectangles, int rectCount)
void drawRects(const QList<QRect> &rectangles)
void drawRects(const QList<QRectF> &rectangles)
void drawRects(const QRect *rectangles, int rectCount)
void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
void drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
void drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
void drawStaticText(int left, int top, const QStaticText &staticText)
void drawText(const QPointF &position, const QString &text)
void drawText(const QPoint &position, const QString &text)
void drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
void drawText(int x, int y, const QString &text)
void drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
void drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
void drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())
void drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
bool end()
void endNativePainting()
void eraseRect(const QRectF &rectangle)
void eraseRect(const QRect &rectangle)
void eraseRect(int x, int y, int width, int height)
void fillPath(const QPainterPath &path, const QBrush &brush)
void fillRect(const QRectF &rectangle, const QBrush &brush)
void fillRect(const QRect &rectangle, QGradient::Preset preset)
void fillRect(const QRect &rectangle, Qt::BrushStyle style)
void fillRect(const QRect &rectangle, Qt::GlobalColor color)
void fillRect(const QRect &rectangle, const QBrush &brush)
void fillRect(const QRect &rectangle, const QColor &color)
void fillRect(const QRectF &rectangle, QGradient::Preset preset)
void fillRect(const QRectF &rectangle, Qt::BrushStyle style)
void fillRect(const QRectF &rectangle, Qt::GlobalColor color)
void fillRect(const QRectF &rectangle, const QColor &color)
void fillRect(int x, int y, int width, int height, QGradient::Preset preset)
void fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
void fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
void fillRect(int x, int y, int width, int height, const QBrush &brush)
void fillRect(int x, int y, int width, int height, const QColor &color)
const QFont &font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
bool hasClipping() const
bool isActive() const
Qt::LayoutDirection layoutDirection() const
qreal opacity() const
QPaintEngine *paintEngine() const
const QPen &pen() const
QPainter::RenderHints renderHints() const
void resetTransform()
void restore()
void rotate(qreal angle)
void save()
void scale(qreal sx, qreal sy)
void setBackground(const QBrush &brush)
void setBackgroundMode(Qt::BGMode mode)
void setBrush(const QBrush &brush)
void setBrush(Qt::BrushStyle style)
void setBrushOrigin(const QPointF &position)
void setBrushOrigin(const QPoint &position)
void setBrushOrigin(int x, int y)
void setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipRegion(const QRegion &region, Qt::ClipOperation operation = Qt::ReplaceClip)
void setClipping(bool enable)
void setCompositionMode(QPainter::CompositionMode mode)
void setFont(const QFont &font)
void setLayoutDirection(Qt::LayoutDirection direction)
void setOpacity(qreal opacity)
void setPen(const QPen &pen)
void setPen(Qt::PenStyle style)
void setPen(const QColor &color)
void setRenderHint(QPainter::RenderHint hint, bool on = true)
void setRenderHints(QPainter::RenderHints hints, bool on = true)
void setTransform(const QTransform &transform, bool combine = false)
void setViewTransformEnabled(bool enable)
void setViewport(const QRect &rectangle)
void setViewport(int x, int y, int width, int height)
void setWindow(const QRect &rectangle)
void setWindow(int x, int y, int width, int height)
void setWorldMatrixEnabled(bool enable)
void setWorldTransform(const QTransform &matrix, bool combine = false)
void shear(qreal sh, qreal sv)
void strokePath(const QPainterPath &path, const QPen &pen)
bool testRenderHint(QPainter::RenderHint hint) const
const QTransform &transform() const
void translate(const QPointF &offset)
void translate(const QPoint &offset)
void translate(qreal dx, qreal dy)
bool viewTransformEnabled() const
QRect viewport() const
QRect window() const
bool worldMatrixEnabled() const
const QTransform &worldTransform() const

詳細説明

QPainter は、GUI プログラムが必要とするほとんどの描画を行うために高度に最適化された関数を提供します。単純な線からパイやコードのような複雑な図形まで描画できます。また、整列されたテキストやピクセルマップも描画できます。通常は「自然な」座標系で描画しますが、ビュー変換やワールド変換も可能です。QPainter は、QPaintDevice クラスを継承する任意のオブジェクトに対して操作できます。

QPainterの一般的な使い方は、ウィジェットのpaintイベント内です:ペインターを構築し、カスタマイズします(例えば、ペンやブラシを設定します)。次に描画します。描画後、QPainterオブジェクトを破棄することを忘れないでください。例えば

void SimpleExampleWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.setPen(Qt::blue);
    painter.setFont(QFont("Arial", 30));
    painter.drawText(rect(), Qt::AlignCenter, "Qt");
}

QPainterの核となる機能は描画ですが、このクラスはQPainterの設定や描画品質をカスタマイズする関数や、クリッピングを可能にする関数も提供しています。さらに、ペインターの合成モードを指定することで、異なる図形をどのように合成するかを制御できます。

isActive() 関数はペインターがアクティブかどうかを示します。ペインターはbegin() 関数とQPaintDevice 引数を取るコンストラクタによってアクティブになります。end() 関数とデストラクタはペインターを非アクティブにします。

QPainter は、QPaintDeviceQPaintEngine クラスとともに、Qt のペイントシステムの基本を形成しています。QPainter は描画操作を行うために使用されるクラスです。QPaintDevice は QPainter を使用して描画できるデバイスを表します。QPaintEngine は、ペインターが異なるタイプのデバイスに描画するために使用するインターフェイスを提供します。ペインターがアクティブな場合、device() はペインターが描画するペイント・デバイスを返し、paintEngine() はペインターが現在操作しているペイント・エンジンを返します。詳細については、ペイントシステムを参照してください。

時には、QPaintDevice 変わったペイントを他の人にさせたいこともあります。QPainter はこのための静的関数 setRedirected() をサポートしています。

警告: paintdevice がウィジェットの場合、QPainter は paintEvent() 関数の中か、paintEvent() によって呼び出される関数の中でのみ使用できます。

設定

QPainterをあなたの好みに合わせて描画するために、カスタマイズできる設定がいくつかあります:

  • font() はテキストの描画に使用するフォントです。ペインターがisActive() を指定すると、fontInfo() とfontMetrics() 関数をそれぞれ使って、現在設定されているフォントとそのメトリクスに関する情報を取得できます。
  • brush() は、図形の塗りつぶしに使われる色やパターンを定義します。
  • pen() は、線や境界の描画に使われる色やスティプルを定義します。
  • backgroundMode() は、background() があるかどうか、つまりQt::OpaqueModeQt::TransparentMode かを定義する。
  • background() は、backgroundMode() がQt::OpaqueMode で、pen() がスティプルである場合にのみ適用される。この場合、スティプル内の背景ピクセルの色を記述する。
  • brushOrigin() は、タイル状のブラシの原点を定義し、通常はウィジェットの背景の原点となります。
  • viewport(),window(),worldTransform() はペインターの座標変換システムを構成します。詳しくは、Coordinate Transformations のセクションとCoordinate Systemのドキュメントを参照してください。
  • hasClipping() はペインターがクリップするかどうかを指定します。(ペイントデバイスもクリップします。) ペインターがクリップする場合、clipRegion() にクリップします。
  • layoutDirection() は、ペインターがテキストを描画するときに使用するレイアウト方向を定義します。
  • worldMatrixEnabled() はワールド変換が有効かどうかを指定します。
  • viewTransformEnabled() はビュー変換が有効かどうかを指定します。

これらの設定のいくつかは、QWidget::font() のようなペイントデバイスの設定を反映していることに注意してください。QPainter::begin() 関数(または同等の QPainter コンストラクタ)は、ペイントデバイスからこれらの属性をコピーします。

QPainterの状態を保存するには、save ()関数を呼び出します。restore() 関数はそれらをポップバックします。

描画

drawPoint(),drawPoints(),drawLine(),drawRect(),drawRoundedRect(),drawEllipse(),drawArc(),drawPie(),drawChord(),drawPolyline(),drawPolygon(),drawConvexPolygon() と drawCubicBezier() です。drawRects() とdrawLines() の2つの便利関数は、現在のペンとブラシを使用して、QRects またはQLines の指定された配列に、指定された数の矩形または線を描画します。

QPainter クラスは、与えられたQRect を与えられたQBrush で塗りつぶすfillRect() 関数と、与えられた矩形の内側の領域を消去するeraseRect() 関数も提供します。

これらの関数はすべて、整数バージョンと浮動小数点バージョンの両方を持っています。

基本描画の例

基本描画の例では、QPainter クラスを使用して、基本的なグラフィック・プリミティブをさまざまなスタイルで表示する方法を示します。

複雑な図形を描画する必要がある場合、特に繰り返し描画する必要がある場合は、QPainterPath を作成し、drawPath() を使用して描画することを検討してください。

ペインターパスの例

QPainterPath クラスは描画操作のためのコンテナを提供し、グラフィカルな図形を構築して再利用できるようにします。

ペインターパスの例では、ペインターパスを使用して、レンダリング用の複雑な形状を構築する方法を示します。

QPainter はまた、与えられたQPainterPath を与えられたQBrush で塗りつぶすfillPath() 関数と、与えられたパスの輪郭を描画する(つまり、パスをストロークする)strokePath() 関数を提供します。

また、QPainterPath を使用してテキストを描画する高度なベクトル技術を使用する方法を示すVector Deformation の例、Qt で使用可能なさまざまな種類のグラデーションを示すGradients の例、Qt の組み込みダッシュパターンを示し、使用可能なパターンの範囲を拡張するためにカスタムパターンを使用する方法を示すPath Stroking の例も参照してください。

テキストの描画にはdrawText() を使用します。細かい位置決めが必要な場合は、boundingRect() が、指定されたdrawText() コマンドが描画する位置を教えてくれます。

ピクスマップと画像の描画

drawPixmap ()、drawImage ()、drawTiledPixmap ()。drawPixmap() とdrawImage() はどちらも同じ結果を生成しますが、drawPixmap() の方が画面上では速く、drawImage() の方がQPrinter などのデバイス上では速い場合があります。

QPicture 全体の内容を描画するdrawPicture ()関数がある。QPicture には独自の設定があるため、drawPicture() 関数はペインターの設定をすべて無視する唯一の関数です。

ピクスマップと画像の高解像度版の描画

高解像度版のピクスマップは、デバイスのピクセル比の値が1より大きくなります(QImageReader,QPixmap::devicePixelRatio() を参照)。この値がQPaintDevice の値と一致する場合、追加の変換は適用されず、デバイス上に直接描画されます。

例えば、64x64 ピクセルの大きさで、デバイスピクセル比が 2 のQPixmap を、同じくデバイスピクセル比が 2 の高 DPI スクリーンに描画する場合です。この場合、pixmap はユーザー空間では実質的に 32x32 ピクセルになることに注意してください。pixmapのサイズに基づいてレイアウトのジオメトリを計算するQtのコードパスは、このサイズを使用します。この正味の効果は、pixmapが大きなpixmapではなく、高DPIのpixmapとして表示されることです。

レンダリング品質

QPainterを使用して最適なレンダリング結果を得るには、プラットフォームに依存しないQImage をペイントデバイスとして使用する必要があります。つまり、QImage を使用することで、どのプラットフォームでも同じピクセル表現になります。

QPainterクラスは、RenderHint 列挙型と浮動小数点精度のサポートを通じて、レンダリング品質を制御する手段も提供します:プリミティブを描画する関数はすべて浮動小数点数バージョンを持っています。

    painter.drawEllipse(QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter));

これらはQPainter::Antialiasing レンダー・ヒントと組み合わせてよく使われます。

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing, true);
同心円をintとfloatで、またアンチエイリアスレンダリングの有無で比較。浮動小数点精度のバージョンを使用すると、等間隔の輪ができます。アンチエイリアス付きレンダリングでは、滑らかな円になります。

RenderHint enum は、QPainter に対するフラグを指定します。このフラグは、任意のエンジンによって尊重される場合とされない場合があります。QPainter::Antialiasing は、エンジンが可能であればプリミティブのエッジをアンチエイリアスすべきことを示し、QPainter::TextAntialiasing は、エンジンが可能であればテキストをアンチエイリアスすべきことを示し、QPainter::SmoothPixmapTransform は、エンジンが滑らかな pixmap 変換アルゴリズムを使用すべきことを示します。

renderHints() 関数は、このペインタに設定されているレンダリングヒントを指定するフラグを返します。現在設定されているRenderHints を設定またはクリアするにはsetRenderHint() 関数を使用します。

座標変換

通常、QPainterはデバイス独自の座標系(通常はピクセル)で動作しますが、QPainterは座標変換を十分にサポートしています。

最もよく使われる変換は、拡大縮小、回転、平行移動、せん断です。座標系を与えられたオフセットだけ拡大縮小するにはscale() 関数を、時計回りに回転させるにはrotate() 関数を、平行移動(つまり、与えられたオフセットを点に加える)にはtranslate() 関数を使います。ま た、shear() 関数を使っ て、 座標系を原点ま わ り に捻 る こ と も で き ます。シ ェ ア座標系の視覚化については 「ア フ ァ イ ン変換」 の例を参照 し て く だ さ い。

変換がQPainter のグラフィックプリミティブのレンダリング方法にどのように影響するかを示すTransformations の例もご覧ください。特に、変換の順序が結果にどのように影響するかを示しています。

アフィン変換の例

アフィン変換の例では、Qt がペイント操作に対してアフィン変換を実行できることを示します。また、このデモでは、ユーザーが変換操作を試して、結果をすぐに確認することができます。

すべての変換操作は、変換worldTransform() に対して行われます。行列は、平面上の点を別の点に変換します。変換行列の詳細については、座標系と QTransform のドキュメントを参照してください。

setWorldTransform() 関数は、現在設定されているworldTransform() を置き換えたり、追加したりします。resetTransform() 関数は、translate(),scale(),shear(),rotate(),setWorldTransform(),setViewport(),setWindow() 関数を使用して行われた変換をすべてリセットします。deviceTransform() は、論理座標からプラットフォーム依存のペイントデバイスのデバイス座標に変換する行列を返します。後者の関数は、プラットフォーム依存のハンドルでプラットフォームのペイントコマンドを使用する場合にのみ必要で、プラットフォームはネイティブに変換を行いません。

QPainterで描画する場合、論理座標を使って点を指定し、それをペイントデバイスの物理座標に変換します。論理座標から物理座標へのマッピングは、QPainterのcombinedTransform ()、viewport ()、window ()、worldTransform ()の組み合わせで処理されます。viewport() は任意の矩形を指定する物理座標を表し、window() は同じ矩形を論理座標で記述し、worldTransform() は変換行列と同一です。

座標系も 参照。

クリッピング

QPainter は、任意の描画操作を矩形、領域、またはベクトルパスにクリップできます。現在のクリップは、関数clipRegion() とclipPath() で確認できます。パスとリージョンのどちらを優先するか(高速化するか)は、基盤となるpaintEngine() に依存します。たとえば、QImage のペイントエンジンはパスを優先し、X11 のペイントエンジンはリージョンを優先します。クリップの設定はペインターの論理座標で行われます。

QPainter がクリップした後、ペイントデバイスもクリップするかもしれません。例えば、ほとんどのウィジェットは子ウィジェットが使用するピクセルをクリップし、ほとんどのプリンタは用紙の端に近い領域をクリップします。この追加のクリッピングは、clipRegion() やhasClipping() の戻り値には反映されません。

合成モード

QPainter は、デジタル画像の合成に関する Porter-Duff 規則を定義するCompositionMode 列挙型を提供します。これは、ある画像(ソース)のピクセルと別の画像(デスティネーション)のピクセルを合成するモデルを記述したものです。

合成の最も一般的な2つの形式は、SourceSourceOver です。Source は、不透明なオブジェクトをペイントデバイスに描画するために使用されます。このモードでは、ソースの各ピクセルが、デスティネーションの対応するピクセルに置き換わります。SourceOver コンポジションモードでは、ソースオブジェクトは透明で、デスティネーションの上に描かれます。

コンポジション変換はピクセル単位で動作することに注意してください。そのため、グラフィックプリミティブそのものを使用する場合と、その境界矩形を使用する場合とでは違いがあります:外接矩形はアルファ== 0のピクセル(つまりプリミティブを囲むピクセル)を含みます。これらのピクセルは他の画像のピクセルを上書きし、効果的にそれらをクリアしますが、プリミティブはそれ自身の領域のみを上書きします。

合成モードの例

Qt の examples ディレクトリにあるComposition Modes の例では、さまざまな合成モードを試して、その結果をすぐに確認できます。

制限事項

Qt のラスターベースのペイントエンジンで座標を使用する場合、+/-215 を超える座標を使用することができますが、この範囲外の座標で実行されたペイントは表示されることが保証されないことに注意することが重要です。これは実装でshort int を使用しているためです。

Qt のストローカーが生成するアウトラインは、曲線図形を扱う場合の近似に過ぎません。ベジェ曲線の輪郭を別のベジェ曲線の輪郭で表現することはほとんどの場合不可能であるため、Qt では複数の小さな曲線を用いて曲線の輪郭を近似しています。パフォーマンス上の理由から、Qtがこれらのアウトラインに使用する曲線の数には限界があり、そのため大きなペン幅やスケールを使用するとアウトラインの誤差が大きくなります。より小さな誤差でアウトラインを生成するには、QPainterPathStroker クラスを使用します。このクラスには setCurveThreshold メンバ関数があり、ユーザが誤差の許容範囲を指定できます。また、パスをポリゴンに変換してからポリゴンを描画する方法もあります。

パフォーマンス

QPainterは、グラデーション、コンポジションモード、ベクターグラフィックスなど、多種多様なグラフィック操作を可能にするリッチなフレームワークです。そしてQPainterは、さまざまな異なるハードウェアとソフトウェアスタックにわたってこれを行うことができます。当然のことながら、ハードウェアとソフトウェアの基本的な組み合わせは、パフォーマンスに何らかの影響を及ぼします。また、コンポジションモード、ブラシ、クリッピング、トランスフォームなどのさまざまな組み合わせのすべてにおいて、すべての操作が高速であることを保証することは、順列の数が多いため、不可能に近い作業です。妥協案として、私たちはQPainter APIとバックエンドのサブセットを選択しました。そこでは、与えられたハードウェアとソフトウェアの組み合わせに対して、賢明な範囲でパフォーマンスが保証されています。

高性能エンジンとして注目したバックエンドは以下の通りです:

  • Raster - このバックエンドは、純粋なソフトウェアですべてのレンダリングを実装し、常にQImagesへのレンダリングに使用されます。最適なパフォーマンスを得るためには、QImage::Format_ARGB32_PremultipliedQImage::Format_RGB32QImage::Format_RGB16 のフォーマットタイプのみを使用してください。QImage::Format_ARGB32 を含むその他のフォーマットでは、パフォーマンスが著しく低下します。このエンジンは、デフォルトでQWidgetQPixmap に使用されます。
  • OpenGL 2.0 (ES) - このバックエンドは、ハードウェア・アクセラレーテッド・グラ フィックスの主要なバックエンドです。OpenGL 2.0またはOpenGL/ES 2.0仕様をサポートするデスクトップマシンや組み込みデバイスで実行できます。これには、ここ数年で製造されたほとんどのグラフィックチップが含まれます。このエンジンは、QPainterをQOpenGLWidget

これらの操作は次のとおりです:

  • 単純な変換、つまり平行移動と拡大縮小、それに0度、90度、180度、270度の回転。
  • drawPixmap() 単純変形と不透明度の組み合わせで、非平滑変形モード( レンダーヒントとして有効になっていない)。QPainter::SmoothPixmapTransform
  • ベタ塗り、2 色線形グラデーション、単純変形による矩形塗りつぶし。
  • 単純変形と交差クリップによる矩形クリッピング。
  • コンポジションモードQPainter::CompositionMode_SourceQPainter::CompositionMode_SourceOver
  • ベタ塗り と 2 色線形グラデ ン ト 塗 り を使っ た丸め長方形塗 り 。
  • qDrawBorderPixmap を使った 3x3 パッチピクスマップ。

このリストは、パフォーマンスが重要なアプリケーションで、どの機能を安全に使用するかの目安になります。特定のセットアップでは、他の操作も高速かもしれませんが、それらを広範囲に使用する前に、最終的にソフトウェアが実行されるシステムでベンチマークして検証することをお勧めします。また、結果がQPixmap にキャッシュされている場合など、高価な演算を使用しても問題ない場合もあります。

QPaintDevice,QPaintEngine,Qt SVG,基本描画例,Drawing Utility Functionsも参照してください

メンバ型のドキュメント

enum QPainter::CompositionMode

デジタル画像合成でサポートされるモードを定義する。合成モードは、ある画像(ソース)のピクセルを、別の画像(デスティネーション)のピクセルとどのように合成するかを指定するために使われます。

RasterOp という接頭辞を持つビット単位のラスター演算モードは、X11 とラスターペイントエンジンでのみネイティブにサポートされていることに注意してください。つまり、Macでこれらのモードを利用するには、QImage 。 RasterOpで示されるブレンドモードは、アルファ成分を持つペンやブラシには対応していません。また、QPainter::Antialiasing レンダーヒントをオンにすると、RasterOpモードは事実上無効になります。

最も一般的なタイプは、ソースピクセルのアルファ成分がピクセルの半透明度を定義するように、ソースピクセルがデスティネーションピクセルの上にブレンドされるSourceOver(多くの場合、単にアルファブレンドと呼ばれる)です。

いくつかのコンポジションモードでは、効果を得るためにソース画像またはターゲット画像にアルファチャンネルが必要です。最適なパフォーマンスを得るには、画像フォーマットFormat_ARGB32_Premultiplied を使用することをお勧めします。

コンポジションモードが設定されると、すべてのペインティングオペレータ、ペン、ブラシ、グラデーション、およびピクセルマップ/画像描画に適用されます。

定数説明
QPainter::CompositionMode_SourceOver0これはデフォルトのモードです。描画元のアルファは、描画先の上にピクセルをブレンドするために使用されます。
QPainter::CompositionMode_DestinationOver1デスティネーションのアルファは、ソースピクセルの上にブレンドするために使用されます。このモードはCompositionMode_SourceOverの逆です。
QPainter::CompositionMode_Clear2デスティネーションのピクセルは、ソースとは無関係にクリアされます(完全に透明に設定されます)。
QPainter::CompositionMode_Source3出力はソースピクセルです。(これは基本的なコピー操作を意味し、ソースピクセルが不透明な場合の SourceOver と同じです)。
QPainter::CompositionMode_Destination4出力はデスティネーションピクセルです。これはブレンディングの効果がないことを意味します。このモードは CompositionMode_Source の逆です。
QPainter::CompositionMode_SourceIn5出力はソースで、アルファはデスティネーションのアルファより小さくなります。
QPainter::CompositionMode_DestinationIn6出力はデスティネーションで、アルファ値はソースのアルファ値によって減少します。このモードは CompositionMode_SourceIn の逆。
QPainter::CompositionMode_SourceOut7出力はソースで、アルファ値はデスティネーションの逆数だけ減少する。
QPainter::CompositionMode_DestinationOut8出力はデスティネーションで、アルファ値はソースの逆数だけ減少する。このモードは CompositionMode_SourceOut の逆です。
QPainter::CompositionMode_SourceAtop9ソースピクセルはデスティネーションピクセルの上にブレンドされ、ソースピクセルのアルファはデスティネーションピクセルのアルファの分だけ減少する。
QPainter::CompositionMode_DestinationAtop10デスティネーションピクセルはソースピクセルの上にブレンドされ、デスティネーションピクセルのアルファはデスティネーションピクセルのアルファによって減少される。このモードは CompositionMode_SourceAtop の逆です。
QPainter::CompositionMode_Xor11デスティネーションピクセルのアルファの逆数だけアルファが減少したソースは、ソースアルファの逆数だけアルファが減少したデスティネーションとマージされます。CompositionMode_Xor はビット単位の Xor とは異なります。
QPainter::CompositionMode_Plus12ソースピクセルとデスティネーションピクセルのアルファと色の両方が加算されます。
QPainter::CompositionMode_Multiply13出力は、ソースカラーにデスティネーションカラーを掛けたものになります。ある色に白を掛けるとその色は変化せず、ある色に黒を掛けると黒になる。
QPainter::CompositionMode_Screen14ソースカラーとデスティネーションカラーは反転されてから乗算されます。色を白でスクリーニングすると白になり、黒でスクリーニングすると黒になる。
QPainter::CompositionMode_Overlay15デスティネーション・カラーに応じて、色を乗算またはスクリーニングします。デスティネーション・カラーはソース・カラーと混合され、デスティネーションの明暗を反映する。
QPainter::CompositionMode_Darken16ソースカラーとデスティネーションカラーの暗い方が選択されます。
QPainter::CompositionMode_Lighten17ソースカラーとデスティネーションカラーの明るい方が選択されます。
QPainter::CompositionMode_ColorDodge18デスティネーションカラーは、ソースカラーを反映して明るくなります。ソースカラーが黒の場合、デスティネーションカラーは変更されません。
QPainter::CompositionMode_ColorBurn19デスティネーションカラーは、ソースカラーを反映して暗くなります。ソースカラーが白の場合、デスティネーションカラーは変更されません。
QPainter::CompositionMode_HardLight20ソースカラーに応じて、色を乗算またはスクリーニングします。明るいソースカラーはデスティネーションカラーを明るくし、暗いソースカラーはデスティネーションカラーを暗くします。
QPainter::CompositionMode_SoftLight21ソースカラーに応じて、色を濃くしたり薄くしたりします。CompositionMode_HardLight に似ています。
QPainter::CompositionMode_Difference22明るい色から暗い色を減算します。白で描画すると描画先の色が反転し、 黒で描画すると描画先の色は変更されません。
QPainter::CompositionMode_Exclusion23CompositionMode_Difference に似ていますが、コントラストが低くなります。白で描画すると描画先の色が反転し、黒で描画すると描画先の色は変更されません。
QPainter::RasterOp_SourceOrDestination24ソースピクセルとデスティネーションピクセルに対してビットごとの OR 演算を行います (src OR dst)。
QPainter::RasterOp_SourceAndDestination25ソースピクセルとデスティネーションピクセルに対してビット単位の AND 演算を行います (src AND dst)。
QPainter::RasterOp_SourceXorDestination26ソースピクセルとデスティネーションピクセルに対してビット単位のXOR演算を行います(src XOR dst)。
QPainter::RasterOp_NotSourceAndNotDestination27ソースピクセルとデスティネーションピクセルに対してビット単位のNOR演算を行います((NOT src) AND (NOT dst))。
QPainter::RasterOp_NotSourceOrNotDestination28ソースピクセルとデスティネーションピクセルに対してビット単位のNAND演算を行います((NOT src) OR (NOT dst))。
QPainter::RasterOp_NotSourceXorDestination29ソースピクセルを反転し、デスティネーションとXORするビット演算((NOT src) XOR dst)。
QPainter::RasterOp_NotSource30ソースピクセルを反転させるビット演算(NOT src)。
QPainter::RasterOp_NotSourceAndDestination31ソースピクセルを反転し、デスティネーションとANDするビット演算((NOT src) AND dst)。
QPainter::RasterOp_SourceAndNotDestination32ソースが反転されたデスティネーションピクセルとANDされるビット演算(src AND (NOT dst))。
QPainter::RasterOp_NotSourceOrDestination33ソースを反転し,デスティネーションとOR演算するビット演算((NOT src) OR dst).
QPainter::RasterOp_ClearDestination35デスティネーションのピクセルは,ソースとは無関係にクリア(0にセット)される.
QPainter::RasterOp_SetDestination36デスティネーションのピクセルは、ソースとは無関係にセットされる(1にセットされる)。
QPainter::RasterOp_NotDestination37デスティネーションのピクセルが反転される(NOT dst)ビット演算を行う.
QPainter::RasterOp_SourceOrNotDestination34ソースと,反転されたデスティネーションのピクセルを OR する(src OR (NOT dst))ビット演算を行う.

compositionMode(),setCompositionMode(),Composition Modes,画像合成の例も参照してください

enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints.

定数説明
QPainter::OpaqueHint0x01描画される pixmap フラグメントが不透明であることを示します。不透明な断片は描画が速くなる可能性があります。

PixmapFragmentHints 型はQFlags<PixmapFragmentHint> の typedef です。PixmapFragmentHint 値の OR の組み合わせを格納します。

QPainter::drawPixmapFragments() およびQPainter::PixmapFragmentも参照してください

enum QPainter::RenderHint
flags QPainter::RenderHints

レンダリングヒントはQPainter にフラグを指定するために使われます。

定数説明
QPainter::Antialiasing0x01可能であれば、エンジンがプリミティブのエッジをアンチエイリアスすることを示します。
QPainter::TextAntialiasing0x02テ キ ス ト に対 し て可能な限 り ア ン タ イ ア ス をかけ る こ と を指定 し ます。テキストのアンチエイリアスを強制的に無効にするには、このヒントを使用しないでください。代わりに、フォントのスタイルストラテジーでQFont::NoAntialias を設定してください。
QPainter::SmoothPixmapTransform0x04テキス ト を、 可能な限 り テ キ ス ト のア ン チ ア リ ア ス を強制的に無効にす る には、 こ の ヒ ン ト は使用 し ないで く だ さ い。
QPainter::VerticalSubpixelPositioning0x08テキス ト を水平方向だけでな く 垂直方向にも ピ ク セル単位で配置で き る よ う に し ます (フ ォ ン ト エ ン ジ ン で対応 し てい る 場合)。こ れは現在、 すべてのプ ラ ッ ト フ ォーム上で、 ヒ ン テ ィ ン グ環境設定がQFont::PreferNoHinting の と き に Freetype でサポー ト さ れてお り 、 macOS でもサポー ト さ れてい ます。たいていの場合、 こ れに よ っ て視覚的な品質が向上す る こ と はあ り ませんが、 メ モ リ 消費が増加 し 、 テ キ ス ト 描画パフ ォーマ ン ス が若干低下す る 可能性があ り ます。したがって、ユースケースで必要とされない限り、これを有効にすることは推奨されません。そのようなユースケースの一つは、グリフを他のビジュアルプリミティブと整列させることです。この値は Qt 6.1 で追加されました。
QPainter::LosslessImageRendering0x40可能な限り、ロスレス画像レンダリングを使用する。現在のところ、このヒントはQPainterQPrinter またはQPdfWriter を通して PDF ファイルを出力するときにのみ使用されます。drawImage()/drawPixmap() を呼び出すと、非可逆 JPEG 圧縮ではなく、可逆圧縮アルゴリズムを使って画像がエンコードされます。この値は Qt 5.13 で追加されました。
QPainter::NonCosmeticBrushPatterns0x80定義済みのパターン・スタイルの 1 つを持つブラシでペイントする場合、ペイントされるオブジェクトと一緒にパターンも変換します。デフォルトでは、パターンを化粧品として扱い、アクティブな変換とは無関係に、パターンのピクセルがデバイスのピクセルに直接マッピングされます。この値は Qt 6.4 で追加されました。

RenderHints 型はQFlags<RenderHint> の typedef です。これは、RenderHint値のORの組み合わせを格納します。

renderHints(),setRenderHint(),Rendering Qualityも参照してください

メンバ関数ドキュメント

QPainter::QPainter()

ペインターを構築します。

begin() およびend() も参照して ください。

[explicit] QPainter::QPainter(QPaintDevice *device)

すぐにペイントdevice のペイントを開始するペインターを構築します。

このコンストラクタは、QWidget::paintEvent() などの短命のペインターに便利で、一度だけ使用する必要があります。コンストラクタはbegin() を呼び、QPainter のデストラクタは自動的にend() を呼びます。

以下はbegin() とend() を使った例です:

void MyWidget::paintEvent(QPaintEvent *)
{
    QPainter p;
    p.begin(this);
    p.drawLine(drawingCode);        // drawing code
    p.end();
}

このコンストラクタを使った同じ例:

void MyWidget::paintEvent(QPaintEvent *)
{
    QPainter p(this);
    p.drawLine(drawingCode);        // drawing code
}

コンストラクタはペインターの初期化に失敗したときのフィードバックを提供できないので、外部デバイス、例えばプリンタにペイントするには、むしろbegin() とend() を使うべきです。

begin() およびend()も参照して ください。

[noexcept] QPainter::~QPainter()

ペインターを破棄します。

const QBrush &QPainter::background() const

現在の背景ブラシを返します。

setBackground() およびSettings参照して ください。

Qt::BGMode QPainter::backgroundMode() const

現在の背景モードを返します。

setBackgroundMode() およびSettingsも参照して ください。

bool QPainter::begin(QPaintDevice *device)

falseペイントdevice のペイントを開始し、成功すればtrue を返します。

すべてのペインター設定 (setPen(),setBrush() など) は、begin() が呼ばれるとデフォルト値にリセットされることに注意。

発生する可能性のあるエラーは、以下のような深刻な問題です:

painter->begin(0); // impossible - paint device cannot be 0

QPixmap image(0, 0);
painter->begin(&image); // impossible - image.isNull() == true;

painter->begin(myWidget);
painter2->begin(myWidget); // impossible - only one painter at a time

ほとんどの場合、begin() の代わりにコンストラクタのいずれかを使用でき、end() は破棄時に自動的に実行されることに注意してください。

警告 ペイント・デバイスは一度に一人のペインターしかペイントできません。

警告 QImage::Format_Indexed8 形式のQImage へのペイントはサポートされていません。

end() およびQPainter()も参照して ください。

void QPainter::beginNativePainting()

ペインティングパイプラインをフラッシュし、ユーザーが基礎となるグラフィックスコンテキストに直接コマンドを発行できるように準備します。その後にendNativePainting() を呼び出す必要があります。

基礎となるペイントエンジンが変更した状態のみが、それぞれのデフォルト状態にリセットされることに注意してください。リセットされる状態は、リリースごとに変わる可能性があります。現在、OpenGL 2エンジンでは以下の状態がリセットされます:

  • ブレンドは無効です。
  • 深度、ステンシル、シザーのテストが無効になります。
  • アクティブなテクスチャ ユニットは 0 にリセットされます。
  • デプス マスク、デプス関数、およびクリア デプスがデフォルト値にリセットされます。
  • ステンシルマスク、ステンシル操作、およびステンシル機能がデフォルト値にリセットされます。
  • 現在の色が白無地にリセットされます。

例えば、beginNativePaint()/endNativePainting()ブロック内でOpenGLポリゴンモードがユーザーによって変更された場合、endNativePainting()によってデフォルト状態にリセットされることはありません。ペインターコマンドと生のOpenGLコマンドが混在している例を示します:

QPainter painter(this);
painter.fillRect(0, 0, 128, 128, Qt::green);
painter.beginNativePainting();

glEnable(GL_SCISSOR_TEST);
glScissor(0, 0, 64, 64);

glClearColor(1, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);

glDisable(GL_SCISSOR_TEST);

painter.endNativePainting();

endNativePainting()も参照してください

QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)

現在設定されているfont() を用いて、指定されたflags で、指定されたrectangle の内側に描画されたときに表示されるtext の外接矩形を返します; つまり、この関数は、同じ引数が与えられたときにdrawText() 関数が描画する場所を教えてくれます。

指定されたflags を用いて、指定されたrectangle 内にtext が収まらない場合、関数は必要な矩形を返します。

引数flags は、以下のフラグのビット OR です:

複数の水平アライメントフラグまたは複数の垂直アライメントフラグが設定されている場合,結果のアライメントは未定義である。

drawText()、Qt::Alignment 、およびQt::TextFlagも参照のこと

QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)

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

現在設定されているfont() を使って、指定されたflags で、指定されたrectangle の内側に描画されたときに表示されるtext の外接矩形を返します。

QRectF QPainter::boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())

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

フラグをQt::AlignmentFlagQt::TextFlag のビット OR で指定する代わりに、このオーバーロード関数はoption 引数を取ります。QTextOption クラスは、一般的なリッチテキストプロパティの説明を提供します。

QTextOptionも参照してください

QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)

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

与えられたtext の外接矩形を、点 (x,y) で始まる矩形の内側に幅w と高さh で描画されたときに表示されるように返します。

const QBrush &QPainter::brush() const

ペインターの現在のブラシを返します。

QPainter::setBrush() およびSettingsも参照してください

QPoint QPainter::brushOrigin() const

現在設定されているブラシの原点を返します。

setBrushOrigin() およびSettingsも参照

QRectF QPainter::clipBoundingRect() const

クリップが存在する場合は、現在のクリップの外接矩形を返します。ク リ ッ プ領域は論理座標で与え ら れ る こ と に留意 し て く だ さ い。

外接矩形はタイトであることは保証されません。

setClipRect(),setClipPath(),setClipRegion()も参照

QPainterPath QPainter::clipPath() const

現在のクリップパスを論理座標で返します。

警告: QPainter は,結合されたクリップを明示的に保存しません.これは,基礎となるQPaintEngine が処理するためです.これは高価な操作になる可能性があります。

setClipPath(),clipRegion(),setClipping()も参照

QRegion QPainter::clipRegion() const

現在設定されているクリップ領域を返します。クリップ領域は論理座標で与えられることに注意してください。

警告: QPainter は、結合されたクリップを明示的に保存しません。これは、基礎となるQPaintEngine によって処理されるためです。これは高価な操作になる可能性があります。

setClipRegion(),clipPath(),setClipping()も参照してください

QTransform QPainter::combinedTransform() const

現在のウィンドウ/ビューポートとワールド変換を組み合わせた変換行列を返します。

setWorldTransform()、setWindow()、setViewport()も参照

QPainter::CompositionMode QPainter::compositionMode() const

現在の合成モードを返します。

CompositionMode およびsetCompositionMode() も参照して ください。

QPaintDevice *QPainter::device() const

このペインターが現在ペイントしているペイントデバイスを返します。ペインターがアクティブでない場合はnullptr を返します。

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

const QTransform &QPainter::deviceTransform() const

論理座標からプラットフォーム依存のペイントデバイスのデバイス座標に変換する行列を返します。

この関数は、プラットフォーム依存のハンドル (Qt::HANDLE) でプラットフォームのペイントコマンドを使用し、プラットフォームがネイティブに変換を行わない場合にのみ必要です。

QPaintEngine::PaintEngineFeature enum を照会することで、プラットフォームが変換を行うかどうかを決定することができます。

worldTransform() およびQPaintEngine::hasFeature()も参照

void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)

与えられたrectanglestartAnglespanAngle で定義された円弧を描画します。

startAngle およびspanAngle は、1/16 度単位で指定する必要があります。つまり、完全な円は 5760 (16 * 360) に相当します。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawArc(rectangle, startAngle, spanAngle);

drawPie(),drawChord(),座標系も参照

void QPainter::drawArc(const QRect &rectangle, int startAngle, int spanAngle)

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

指定されたrectanglestartAnglespanAngle で定義された円弧を描画します。

void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)

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

(x,y) で始まる矩形と、指定されたwidthheight 、および指定されたstartAnglespanAngle によって定義される円弧を描画します。

void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)

与えられたrectangle,startAngle およびspanAngle で定義されるコードを描画します。このコードは、現在のbrush() で塗りつぶされます。

startAngleとspanAngleは1/16度で指定しなければならない。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawChord(rect, startAngle, spanAngle);

drawArc(),drawPie(),座標系も参照

void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)

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

与えられたrectanglestartAnglespanAngle で定義されたコードを描画します。

void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)

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

(x,y) で始まる矩形と、指定されたwidthheight 、および指定されたstartAnglespanAngle で定義されるコードを描画します。

void QPainter::drawConvexPolygon(const QPointF *points, int pointCount)

現在のペンを使って、配列points の最初のpointCount 点で定義される凸多角形を描画します。

static const QPointF points[4] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
    QPointF(90.0, 70.0)
};

QPainter painter(this);
painter.drawConvexPolygon(points, 4);

最初の点は暗黙のうちに最後の点に接続され、多角形は現在のbrush() で塗りつぶされます。与えられた多角形が凸でない場合、つまり180度より大きな角度を少なくとも1つ含む場合、結果は未定義です。

プラットフォームによっては (X11 など)、drawConvexPolygon() 関数の方がdrawPolygon() 関数よりも高速な場合があります。

drawPolygon(),drawPolyline(),Coordinate Systemも参照してください

void QPainter::drawConvexPolygon(const QPolygon &polygon)

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

現在のペンとブラシを使用して、polygon で定義された凸多角形を描画します。

void QPainter::drawConvexPolygon(const QPolygonF &polygon)

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

現在のペンとブラシを使用して、polygon で定義された凸多角形を描画します。

void QPainter::drawConvexPolygon(const QPoint *points, int pointCount)

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

現在のペンを使って、配列points の最初のpointCount 点で定義される凸多角形を描画します。

void QPainter::drawEllipse(const QRectF &rectangle)

与えられたrectangle で定義される楕円を描画します。

size塗りつぶされた楕円のサイズはrectangle です。描線された楕円のサイズは、rectangle.size() にペン幅を加えたものになります。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawEllipse(rectangle);

drawPie() およびCoordinate Systemも参照してください

void QPainter::drawEllipse(const QRect &rectangle)

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

与えられたrectangle で定義された楕円を描画する。

void QPainter::drawEllipse(const QPoint &center, int rx, int ry)

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

半径rxrycenter に配置された楕円を描画します。

void QPainter::drawEllipse(const QPointF &center, qreal rx, qreal ry)

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

半径rxry を持つcenter に位置する楕円を描画します。

void QPainter::drawEllipse(int x, int y, int width, int height)

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

(x,y) で始まる矩形で定義される楕円を、与えられたwidthheight で描画します。

void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)

glyphs で表されるグリフをposition に描画します。position は、 グ リ フ の文字列のベース ラ イ ンの端を与え ます。グリフはglyphs で選択されたフォントから、glyphs の位置で与えられたオフセットで取得されます。

QGlyphRun::setRawFont(),QGlyphRun::setPositions(),QGlyphRun::setGlyphIndexes()も参照

void QPainter::drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)

与えられたimage の矩形部分source を、ペイントデバイスのtarget の矩形に描画します。

注意 : 画像と矩形のサイズが不一致の場合、画像は矩形に合わせて拡大縮小されます。

注意: これがQImage::devicePixelRatio() によってどのように影響されるかについては、Drawing High Resolution Versions of Pixmaps and Images を参照してください。

低解像度の結果に収まるように画像を修正する必要がある場合(32ビットから8ビットへの変換など)、flags を使って、どのようにしたいかを指定してください。

QRectF target(10.0, 20.0, 80.0, 60.0);
QRectF source(0.0, 0.0, 70.0, 40.0);
QImage image(":/images/myImage.png");

QPainter painter(this);
painter.drawImage(target, image, source);

drawPixmap() およびQImage::devicePixelRatio()も参照

void QPainter::drawImage(const QPoint &point, const QImage &image)

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

指定されたimage を指定されたpoint に描画します。

void QPainter::drawImage(const QPointF &point, const QImage &image)

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

与えられたimage を、与えられたpoint に描画します。

void QPainter::drawImage(const QRect &rectangle, const QImage &image)

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

与えられたimage を、与えられたrectangle に描画します。

注意: 画像と矩形のサイズが一致しない場合、画像は矩形に合わせて拡大縮小されます。

void QPainter::drawImage(const QRectF &rectangle, const QImage &image)

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

与えられたimage を,与えられたrectangle に描画します.

注意: 画像と矩形サイズの両方が不一致の場合、画像は矩形に合うようにスケーリングされます。

void QPainter::drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)

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

与えられたimage の矩形部分source を、与えられたpoint を原点として描画します。

void QPainter::drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)

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

与えられたimage の矩形部分source を、与えられたpoint を原点として描画します。

void QPainter::drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)

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

与えられたimage の矩形部分source を、ペイントデバイスのtarget 矩形に描画します。

注意: 画像と矩形のサイズが不一致の場合、画像は矩形に合うように拡大縮小されます。

void QPainter::drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)

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

image の一部をペ イ ン ト デバ イ ス に コ ピーす る こ と に よ っ て、 (x,y) に画像を描画 し ます。

(x,y) は、描画するペイントデバイスの左上の点を指定します。(sx,sy) は、描画するimage の左上点を指定します。デフォルトは (0, 0) です。

(sw,sh) は、描画する画像のサイズを指定します。デフォルトの(0, 0)(およびマイナス)は、画像の右下までを意味する。

void QPainter::drawLine(const QLineF &line)

line で定義された線を描画します。

QLineF line(10.0, 80.0, 90.0, 20.0);

QPainter painter(this);
painter.drawLine(line);

drawLines()、drawPolyline()、Coordinate Systemも参照

void QPainter::drawLine(const QLine &line)

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

line で定義された線を描画します。

void QPainter::drawLine(const QPoint &p1, const QPoint &p2)

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

p1 からp2 までの線を描画する。

void QPainter::drawLine(const QPointF &p1, const QPointF &p2)

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

p1 からp2 までの線を描画します。

void QPainter::drawLine(int x1, int y1, int x2, int y2)

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

(x1,y1) から (x2,y2) までの線を描画する。

void QPainter::drawLines(const QLineF *lines, int lineCount)

現在のペンを使って、配列lines 内の最初のlineCount 行を描画します。

drawLine() およびdrawPolyline()も参照

void QPainter::drawLines(const QList<QLine> &lines)

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

現在のペンとブラシを使用して、リストlines で定義された線の集合を描画します。

void QPainter::drawLines(const QList<QLineF> &lines)

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

現在のペンとブラシを使用して、リストlines で定義された線のセットを描画します。

void QPainter::drawLines(const QList<QPoint> &pointPairs)

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

現在のペンを使って、ベクトルpointPairs 内の点のペアごとに線を描画します。

void QPainter::drawLines(const QList<QPointF> &pointPairs)

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

現在のペンを使って、ベクトルpointPairs 内の点のペアごとに線を描画します。配列内の点の数が奇数の場合、最後の点は無視されます。

void QPainter::drawLines(const QLine *lines, int lineCount)

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

現在のペンを使用して、配列lines の最初のlineCount 行を描画します。

void QPainter::drawLines(const QPoint *pointPairs, int lineCount)

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

現在のペンを使用して、配列pointPairs の最初のlineCount 行を描画します。

void QPainter::drawLines(const QPointF *pointPairs, int lineCount)

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

現在のペンを使用して、配列pointPairs の最初のlineCount 行を描画します。線は点のペアとして指定されるので、pointPairs のエントリ数は少なくともlineCount * 2 でなければならない。

void QPainter::drawPath(const QPainterPath &path)

与えられたペインターpath を、アウトラインには現在のペンを、塗りつぶしには現在のブラシを使って描画します。

QPainterPath path;
path.moveTo(20, 80);
path.lineTo(20, 30);
path.cubicTo(80, 0, 50, 50, 80, 80);

QPainter painter(this);
painter.drawPath(path);

Painter Paths の例と Vector Deformation の例も参照して ください。

void QPainter::drawPicture(const QPointF &point, const QPicture &picture)

与えられたpicture を、与えられたpoint で再生します。

QPicture クラスは、QPainter コマンドを記録して再生するペイントデバイスです。ピクチャは、ペインタコマンドをプラットフォームに依存しない形式で IO デバイスにシリアライズします。ウィジェットや pixmap に描画できるものはすべて、ピクチャに格納することもできます。

この関数は、point =QPointF(0, 0) で呼び出されたとき、QPicture::play() とまったく同じ動作をします。

注意: ペインターの状態は、この関数によって保持されます。

QPicture picture;
QPointF point(10.0, 20.0);
picture.load("drawing.pic");

QPainter painter(this);
painter.drawPicture(0, 0, picture);

QPicture::play()も参照してください

void QPainter::drawPicture(const QPoint &point, const QPicture &picture)

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

与えられたpicture を、与えられたpoint で再生する。

void QPainter::drawPicture(int x, int y, const QPicture &picture)

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

与えられたpicture を点 (x,y) に描画します。

void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)

与えられたrectanglestartAnglespanAngle で定義されるパイを描画します。

パイは現在のbrush() で満たされます。

startAngle と spanAngle は 1/16 度単位で指定しなければならない。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);
int startAngle = 30 * 16;
int spanAngle = 120 * 16;

QPainter painter(this);
painter.drawPie(rectangle, startAngle, spanAngle);

drawEllipse(),drawChord(),座標系も参照

void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)

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

指定されたrectanglestartAngle およびspanAngle で定義されたパイを描画します。

void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)

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

(x,y) で始まる矩形と、指定されたwidthheight 、および指定されたstartAnglespanAngle で定義されるパイを描画します。

void QPainter::drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)

与えられたpixmap の矩形部分source を、ペイントデバイス内の与えられたtarget に描画します。

注: pixmap と矩形のサイズが不一致の場合、矩形に合うように pixmap が拡大縮小されます。

注: QPixmap::devicePixelRatio() による影響についてはDrawing High Resolution Versions of Pixmaps and Images を参照。

QRectF target(10.0, 20.0, 80.0, 60.0);
QRectF source(0.0, 0.0, 70.0, 40.0);
QPixmap pixmap(":myPixmap.png");

QPainter painter(this);
painter.drawPixmap(target, pixmap, source);

pixmapQBitmap の場合、ペンの色を使用して「設定」されたビットで描画されます。backgroundModeQt::OpaqueMode の場合、「設定されていない」ビットは背景ブラシの色を使って描画されます。backgroundModeQt::TransparentMode の場合、「設定されていない」ビットは透明になります。グラデーションカラーやテクスチャカラーでのビットマップの描画はサポートされていません。

drawImage() およびQPixmap::devicePixelRatio()も参照

void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)

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

与えられたpoint を原点として、与えられたpixmap を描画します。

void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)

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

与えられたpixmap を、与えられたpoint を原点として描画します。

void QPainter::drawPixmap(const QRect &rectangle, const QPixmap &pixmap)

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

与えられたpixmap を、与えられたrectangle に描画します。

注意: pixmap と矩形のサイズが一致しない場合、矩形に合わせて pixmap が拡大縮小されます。

void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)

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

与えられたpixmap の矩形部分source を,与えられたpoint を原点として描画します.

void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)

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

与えられたpixmap の矩形部分source を、与えられたpoint を原点として描画します。

void QPainter::drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)

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

与えられたpixmap の矩形部分source を、ペイントデバイス内の与えられたtarget に描画します。

注意: pixmap と矩形のサイズが不一致の場合、 pixmap は矩形に合わせて拡大縮小されます。

void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap)

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

与えられたpixmap を位置 (x,y) に描画します。

void QPainter::drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)

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

pixmap を、与えられたwidthheight を用いて、位置 (x,y) の矩形に描画します。

void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)

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

与えられたpixmap の一部をペイントデバイスにコピーして、 (x,y) に pixmap を描画します。

(x,y) は、描画するペイントデバイスの左上の点を指定します。(sx,sy) は、描画されるpixmap の左上点を指定します。デフォルトは (0, 0) です。

(sw,sh) は、描画する pixmap のサイズを指定します。デフォルトの(0, 0)(および負の値)は、pixmapの右下までを意味する。

void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)

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

与えられたpixmap の原点 (sx,sy), 幅sw, 高さsh を持つ矩形部分を、点 (x,y) に、幅w, 高さh で描画します。 sw または sh がゼロに等しい場合、pixmap の幅/高さが使用され、オフセット sx/sy で調整されます;

void QPainter::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints())

この関数は、pixmap 、またはpixmap のサブ矩形を、異なるスケール、回転、不透明度で複数の位置に描画するために使用します。fragments は、fragmentCount 要素の配列で、各 pixmap 断片の描画に使用するパラメータを指定します。hints パラメータは、描画ヒントを渡すために使用できます。

この関数は、drawPixmap()を複数回呼び出すよりも高速になる可能性がある。なぜなら、バックエンドは状態変更を最適化できるからである。

QPainter::PixmapFragment およびQPainter::PixmapFragmentHintも参照してください

void QPainter::drawPoint(const QPointF &position)

現在のペンの色を使用して、与えられたposition に 1 つの点を描画します。

座標系も参照してください

void QPainter::drawPoint(const QPoint &position)

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

現在のペンの色を使用して、指定されたposition に一点を描画する。

void QPainter::drawPoint(int x, int y)

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

位置 (x,y) に一点を描画します。

void QPainter::drawPoints(const QPointF *points, int pointCount)

現在のペンの色を使用して、配列points の最初のpointCount ポイントを描画します。

座標系も参照してください

void QPainter::drawPoints(const QPolygon &points)

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

ベクトルpoints の点を描画します。

void QPainter::drawPoints(const QPolygonF &points)

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

ベクトルpoints の点を描画します。

void QPainter::drawPoints(const QPoint *points, int pointCount)

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

現在のペンの色を使用して、配列points 内の最初の点pointCount を描画します。

void QPainter::drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)

現在のペンとブラシを使って、配列points の最初の点pointCount で定義される多角形を描画します。

static const QPointF points[4] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
    QPointF(90.0, 70.0)
};

QPainter painter(this);
painter.drawPolygon(points, 4);

最初の点は最後の点と暗黙的に接続され、多角形は現在のbrush() で塗りつぶされる。

fillRuleQt::WindingFill の場合、多角形は巻線塗りつぶしアルゴリズムを使って塗りつぶされます。fillRuleQt::OddEvenFill の場合、多角形は奇偶塗り潰しアルゴリズムを使って塗り潰される。これらの塗りつぶしルールの詳細についてはQt::FillRule を参照。

drawConvexPolygon ()、drawPolyline ()、および座標系も参照してください

void QPainter::drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)

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

与えられたpoints で定義された多角形を、塗りつぶしルールfillRule を用いて描画します。

void QPainter::drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)

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

塗りつぶしルールfillRule を使用して、与えられたpoints で定義された多角形を描画します。

void QPainter::drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)

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

配列points の最初のpointCount 点で定義される多角形を描画します。

void QPainter::drawPolyline(const QPointF *points, int pointCount)

現在のペンを使用して、points の最初のpointCount 点で定義される多角形を描画します。

drawPolygon() 関数とは異なり、最後の点は最初の点に接続されず、ポリラインも塗りつぶされないことに注意してください。

static const QPointF points[3] = {
    QPointF(10.0, 80.0),
    QPointF(20.0, 10.0),
    QPointF(80.0, 30.0),
};

QPainter painter(this);
painter.drawPolyline(points, 3);

drawLines(),drawPolygon(),Coordinate Systemも参照

void QPainter::drawPolyline(const QPolygon &points)

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

現在のペンを使用して、与えられたpoints で定義されたポリラインを描画します。

void QPainter::drawPolyline(const QPolygonF &points)

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

現在のペンを使用して、指定されたpoints によって定義されたポリラインを描画します。

void QPainter::drawPolyline(const QPoint *points, int pointCount)

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

現在のペンを使用して、points の最初のpointCount ポイントによって定義されるポリラインを描画します。

void QPainter::drawRect(const QRectF &rectangle)

現在のペンとブラシを使って、現在のrectangle を描画します。

塗りつぶされた矩形のサイズはrectangle.size()です。描線された矩形のサイズは、rectangle.size() にペン幅を加えたものになります。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawRect(rectangle);

drawRects(),drawPolygon(),Coordinate Systemも参照してください

void QPainter::drawRect(const QRect &rectangle)

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

現在のペンとブラシで現在のrectangle を描画します。

void QPainter::drawRect(int x, int y, int width, int height)

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

左上隅を (x,y) とし、指定されたwidthheight で矩形を描画します。

void QPainter::drawRects(const QRectF *rectangles, int rectCount)

現在のペンとブラシを使って、与えられたrectangles の最初のrectCount を描画します。

drawRect()も参照してください

void QPainter::drawRects(const QList<QRect> &rectangles)

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

現在のペンとブラシを使って、与えられたrectangles を描画します。

void QPainter::drawRects(const QList<QRectF> &rectangles)

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

現在のペンとブラシを使用して、指定されたrectangles を描画します。

void QPainter::drawRects(const QRect *rectangles, int rectCount)

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

現在のペンとブラシを使用して、与えられたrectangles の最初のrectCount を描画します。

void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)

与えられた矩形rect を角丸で描画します。

引数xRadiusyRadius は、角丸矩形の角を定義する楕円の半径を指定します。modeQt::RelativeSize のとき、xRadiusyRadius は、それぞれ矩形の幅と高さの半分のパーセンテージで指定され、0.0 から 100.0 の範囲でなければなりません。

塗りつぶされた矩形のサイズは rect.size() です。描線された矩形は、rect.size() のサイズにペン幅を加えたサイズになります。

QRectF rectangle(10.0, 20.0, 80.0, 60.0);

QPainter painter(this);
painter.drawRoundedRect(rectangle, 20.0, 15.0);

drawRect() およびQPenも参照してください

void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)

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

与えられた矩形rect を角丸で描画します。

void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)

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

与えられた矩形x,y,w,h を角丸で描画します。

void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)

与えられたstaticText を与えられたtopLeftPosition に描画します。

テキストは、ペインタに設定されたフォントと変換を使用して描画されます。ペインタに設定されたフォントおよび/または変換が、QStaticText のレイアウトを初期化するために使用されたものと異なる場合は、レイアウトを再計算する必要があります。QStaticText::prepare() を使って、staticText を、後に描画されるフォントと変換で初期化してください。

topLeftPositionstaticText が初期化されたとき、または最後に描画されたときと同じでない場合、テキストを新しい位置に変換するときに若干のオーバーヘッドが発生します。

注意: ペインターの変換がアフィン変換でない場合、staticTextdrawText() への通常の呼び出しを使用して描画され、パフォーマンス向上の可能性は失われます。

注意 : y-position は、 フ ォ ン ト の上端 と し て用い ら れます。

QStaticTextも参照してください

void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)

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

topLeftPosition の位置にstaticText を描画します。

注意 : y-position はフォントの上端として使用されます。

void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)

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

座標lefttopstaticText を描画します。

注意 : y-position はフォントの上端として使用されます。

void QPainter::drawText(const QPointF &position, const QString &text)

与えられたtext を、与えられたposition を始点として、現在定義されているテキスト方向で描画します。

この関数はテキストを複数行に分割できないため、改行文字( \n) を処理しません。改行文字を含む複数行のテキストを描画したい場合や、テキストを折り返したい場合は、代わりに矩形を 取る QPainter::drawText() オーバーロードを使用してください。

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注: y-position はフォントのベースラインとして使われます。

setFont() およびsetPen()も参照

void QPainter::drawText(const QPoint &position, const QString &text)

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

与えられたtext を、現在定義されているテキスト方向で、与えられたposition から描画します。

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注意 : y-position は、 フ ォ ン ト のベース ラ イ ン と し て用い ら れます。

setFont() およびsetPen()も参照

void QPainter::drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())

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

与えられたtext を、option を使って指定されたrectangle に描画し、その位置、方向、向きを制御します。option で与えられたオプションは、QPainter オブジェクト自体に設定されたものを上書きします。

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注意: rectangle の y 座標がフォントの上端として使われます。

setFont() およびsetPen()も参照してください

void QPainter::drawText(int x, int y, const QString &text)

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

与えられたtext を位置 (x,y) に、 ペインターが現在定義しているテキスト方向を用いて描画します。

デフ ォル ト では、QPainter はテキス ト をアンチエイリアスで描画します。

注: y-position はフォントのベースラインとして使われます。

setFont() およびsetPen()も参照して ください。

void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)

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

指定されたrectangle 内に、指定されたflags に従って、指定されたtext を描画します。

boundingRect (null でない場合) には、 テキス ト 全体を囲むために必要な外接矩形が設定 さ れます。た と えば以下の画像では、 点線は関数が算出 し たboundingRect を表 し 、 破線はrectangle を表しています:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注: rectangle のy座標がフォントの上端として使われる。

setFont() およびsetPen()も参照

void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)

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

与えられたrectangle 内に、与えられたtext を描画します。rectangle と alignmentflags は、text のアンカーを定義します。

QPainter painter(this);
painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject"));

boundingRect (null でない場合) には、 テ キ ス ト 全体を囲 う ために必要な外接矩形が設定 さ れます。た と えば以下の画像では、 点線は関数が算出 し たboundingRect を表 し 、 破線はrectangle を表しています:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

引数flags は、以下のフラグのビット OR です:

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注: rectangle の y 座標がフ ォ ン ト の上端 と し て用い ら れます。

Qt::AlignmentFlagQt::TextFlagboundingRect()、layoutDirection()も参照

void QPainter::drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)

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

与えられたtext を、原点 (x,y),width,height を持つ矩形内に描画します。

boundingRect (null でない場合) は、 テ キ ス ト 全体を囲む ために必要な外接矩形に設定 さ れます。た と えば以下の画像では、 点線は関数が算出 し たboundingRect を表 し 、 破線はx,y,width,height で定義 さ れた矩形を表 し てい ます:

QPainter painter(this);
QFont font = painter.font();
font.setPixelSize(48);
painter.setFont(font);

const QRect rectangle = QRect(0, 0, 100, 50);
QRect boundingRect;
painter.drawText(rectangle, 0, tr("Hello"), &boundingRect);

QPen pen = painter.pen();
pen.setStyle(Qt::DotLine);
painter.setPen(pen);
painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width()));

pen.setStyle(Qt::DashLine);
painter.setPen(pen);
painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width()));

引数flags は、以下のフラグのビット OR です:

デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。

注: y-position はフォントの上端として使われます。

Qt::AlignmentFlag,Qt::TextFlag,setFont(),setPen()も参照

void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())

与えられたrectangle の内側に、与えられたposition を原点とするタイル状のpixmap を描画します。

drawTiledPixmap()の呼び出しは、drawPixmap()を数回呼び出して pixmap で領域を塗りつぶす(タイル化する)のと似ていますが、基本的なウィンドウ・システムによっては、はるかに効率的な可能性があります。

drawTiledPixmap()は、高dpiディスプレイ(devicePixelRatio > 1)では、通常dpiディスプレイと同じ視覚的なタイリング・パターンを生成します。pixmap で devicePixelRatio を設定して、タイル・サイズを制御する。例えば、これを2に設定すると、タイルの幅と高さが半分になり(1xと2xディスプレイの両方で)、2xディスプレイでは高解像度の出力が得られる。

position のオフセットは、ディスプレイの devicePixelRatio とは無関係に、常にペインター座標系になります。

drawPixmap()も参照

void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())

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

与えられたrectangle の内側に、与えられたposition を原点とするタイル状のpixmap を描画します。

void QPainter::drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)

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

指定された矩形内にタイル状のpixmap を描画します。

(x,y) は、描画されるペイントデバイスの左上の点を指定します; 与えられたwidthheight で指定します。 (sx,sy) は、描画されるpixmap の左上の点を指定します; デフォルトは (0, 0) です。

bool QPainter::end()

描画を終了します。描画中に使用されたリソースはすべて解放されます。これはデストラクタから呼び出されるので、通常は呼び出す必要はありません。

ペインターがアクティブでなくなった場合はtrue を返し、 そうでない場合はfalse を返します。

begin() およびisActive()も参照して ください。

void QPainter::endNativePainting()

手動でネイティブペインティングコマンドを発行した後にペインターを復元します。他のペインタコマンドを呼び出す前に、ペインタが依存しているネイティブな状態を復元できるようにします。

beginNativePainting()も参照

void QPainter::eraseRect(const QRectF &rectangle)

指定されたrectangle 内の領域を消去します。を呼び出すのと同じです。

fillRect(rectangle, background());

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

void QPainter::eraseRect(const QRect &rectangle)

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

指定されたrectangle 内の領域を消去します。

void QPainter::eraseRect(int x, int y, int width, int height)

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

(x,y) で始まる矩形の内側の領域を、与えられたwidthheight で消去します。

void QPainter::fillPath(const QPainterPath &path, const QBrush &brush)

与えられたbrush を用いて、与えられたpath を塗りつぶします。輪郭は描画されません。

また、QBrush の代わりにQColor を指定することもできます。QBrush コンストラクタ(引数QColor を取る)は、自動的にソリッドパターンブラシを作成します。

drawPath()も参照してください

void QPainter::fillRect(const QRectF &rectangle, const QBrush &brush)

指定されたbrush で、指定されたrectangle を塗りつぶします。

あるいは、QBrush の代わりにQColor を指定することもできます。QBrush コンストラクタ (QColor 引数をとる) は、自動的にベタのパターンブラシを作成します。

drawRect()も参照してください

void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)

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

与えられたrectangle を、指定されたグラデーションpreset で塗りつぶします。

void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)

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

与えられたrectangle を指定されたブラシstyle で塗りつぶします。

void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)

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

指定されたrectangle を指定されたcolor で塗りつぶします。

void QPainter::fillRect(const QRect &rectangle, const QBrush &brush)

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

指定されたrectangle を指定されたbrush で塗りつぶします。

void QPainter::fillRect(const QRect &rectangle, const QColor &color)

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

指定されたrectangle を指定されたcolor で埋めます。

void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)

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

指定されたrectangle を、指定された勾配preset で埋めます。

void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)

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

指定されたrectangle を指定されたブラシstyle で塗りつぶします。

void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)

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

指定されたrectangle を指定されたcolor で塗りつぶします。

void QPainter::fillRect(const QRectF &rectangle, const QColor &color)

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

指定されたcolor で、指定されたrectangle を塗りつぶします。

void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)

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

(x,y) で始まる矩形を、指定されたwidthheight で、指定されたグラデーションpreset を用いて塗りつぶします。

void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)

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

(x,y) で始まる矩形を、指定されたwidthheight で、指定されたブラシstyle を用いて塗りつぶします。

void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)

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

(x,y) で始まる矩形を、指定されたwidthheight で、指定されたcolor を用いて塗りつぶします。

void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)

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

(x,y) で始まる矩形を、与えられたwidthheight で、与えられたbrush を用いて埋めます。

void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)

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

(x,y) で始まる矩形を、与えられたwidthheight で、与えられたcolor を使って埋めます。

const QFont &QPainter::font() const

テキストを描画するために現在設定されているフォントを返します。

setFont()、drawText()、Settingsも参照

QFontInfo QPainter::fontInfo() const

ペインターがアクティブであれば、ペインターのフォント情報を返します。それ以外の場合、戻り値は未定義です。

font()、isActive()、Settingsも参照

QFontMetrics QPainter::fontMetrics() const

ペ イ ン タ がア ク テ ィ ブであれば、 そのペ イ ン タ のフ ォ ン ト メ ト リ ッ ク を返 し ます。それ以外の場合、戻り値は未定義です。

font()、isActive()、およびSettingsも参照して ください。

bool QPainter::hasClipping() const

クリッピングが設定されている場合はtrue を返し、そうでない場合はfalse を返す。

setClipping() およびClippingも参照

bool QPainter::isActive() const

begin() が呼び出され、かつend() がまだ呼び出されていない場合はtrue を返し、そうでない場合はfalse を返す。

begin() およびQPaintDevice::paintingActive()も参照

Qt::LayoutDirection QPainter::layoutDirection() const

テキストを描画する際にペインターが使用するレイアウト方向を返します。

QTextOption::textDirection()、setLayoutDirection()、drawText() およびSettings参照

qreal QPainter::opacity() const

不透明度 ペインターの不透明度を返します。デフォルト値は 1 です。

setOpacity()も参照

QPaintEngine *QPainter::paintEngine() const

ペインターがアクティブな場合に、そのペインターが現在動作しているペイントエンジンを返します。

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

const QPen &QPainter::pen() const

ペインターの現在のペンを返します。

setPen() およびSettings参照して ください。

QPainter::RenderHints QPainter::renderHints() const

このペインターに設定されているレンダリングヒントを指定するフラグを返します。

setRenderHints()、testRenderHint()、Rendering Qualityも参照して ください。

void QPainter::resetTransform()

translate()、scale()、shear()、rotate()、setWorldTransform()、setViewport()、setWindow() を使用して行われたすべての変換をリセットします。

Coordinate Transformationsも参照してください

void QPainter::restore()

現在のペインターの状態を復元する(保存した状態をスタックからポップする)。

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

void QPainter::rotate(qreal angle)

座標系を時計回りに回転させます。指定したangle パラメータの単位は度です。

setWorldTransform() およびCoordinate Transformations参照して ください。

void QPainter::save()

現在のペインターの状態を保存します (状態をスタックにプッシュします)。save() の後には、対応するrestore() を続けなければなりません。end() 関数はスタックを展開します。

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

void QPainter::scale(qreal sx, qreal sy)

座標系を (sx,sy) だけスケーリングする。

setWorldTransform() およびCoordinate Transformations参照

void QPainter::setBackground(const QBrush &brush)

ペインターの背景ブラシを、与えられたbrush に設定します。

背景ブラシは、不透明なテキスト、スティプル線、ビットマップを描画するときに塗りつぶされるブラシです。背景ブラシは、透明背景モード(デフォルト)では効果がありません。

background(),setBackgroundMode(),Settingsも参照してください

void QPainter::setBackgroundMode(Qt::BGMode mode)

ペインターの背景モードを、指定されたmode

Qt::TransparentMode (デフォルト) は、背景ピクセルを設定せずに、点描画線とテキストを描画します。 は、これらの空間を現在の背景色で塗りつぶします。Qt::OpaqueMode

ビットマップやピクセルマップを透過的に描画するには、QPixmap::setMask() を使用しなければならないことに注意してください。

backgroundMode()、setBackground()、Settingsも参照してください

void QPainter::setBrush(const QBrush &brush)

ペインターのブラシを、与えられたbrush に設定します。

ペインターのブラシは、どのように図形を塗りつぶすかを定義します。

brush() およびSettingsも参照して ください。

void QPainter::setBrush(Qt::BrushStyle style)

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

ペインターのブラシを、黒色と指定されたstyle に設定します。

void QPainter::setBrushOrigin(const QPointF &position)

ブラシの原点をposition に設定します。

ブラシの原点は、ペインターのブラシの座標 (0, 0) を指定します。

brushOrigin() は、Qt 3 ではウィジェットに親の背景を採用するために必要でしたが、Qt 4 のペインターは、ウィジェットのautoFillBackground プロパティを true に設定することで明示的に指示しない限り、背景を描画しないため、このようなことはなくなりました。

brushOrigin() およびSettingsも参照してください

void QPainter::setBrushOrigin(const QPoint &position)

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

ブラシの原点を指定されたposition に設定します。

void QPainter::setBrushOrigin(int x, int y)

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

ブラシの原点を point (x,y) に設定します。

void QPainter::setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)

operationクリッピングを有効にし、ペインターのクリップパスを与えられたpath に設定します。

クリップパスは論理座標(ペインター座標)で指定されることに注意してください。

clipPath(),clipRegion(),Clippingも参照してください

void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)

クリッピングを有効にし、与えられたクリップoperation を用いて、与えられたrectangle にクリップ領域を設定します。デフォルトの操作は、現在のクリップ矩形を置き換えることです。

クリップ矩形は論理座標(ペインタ座標)で指定することに注意してください。

clipRegion(),setClipping(),Clippingも参照してください

void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)

ク リ ッ ピ ン グ を有効に し 、 ク リ ッ プ領域を、 (x,y) で始まる矩形に、 与えられたwidthheight を用いて設定します。

void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)

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

クリッピングを有効にし、与えられたクリップoperation を使用して、与えられたrectangle にクリップ領域を設定します。

void QPainter::setClipRegion(const QRegion &region, Qt::ClipOperation operation = Qt::ReplaceClip)

指定されたクリップoperation を使用して、指定されたregion にクリップ領域を設定します。デフォルトのクリップ操作は、現在のクリップ領域を置き換えることです。

クリップ領域は論理座標で指定することに注意してください。

clipRegion()、setClipRect()、Clippingも参照

void QPainter::setClipping(bool enable)

enable が true の場合はクリッピングを有効にし、enable が false の場合はクリッピングを無効にします。

hasClipping() およびClippingも参照

void QPainter::setCompositionMode(QPainter::CompositionMode mode)

合成モードを、与えられたmode に設定します。

警告: すべての合成モードを完全にサポートしているのは、QImage 上で動作するQPainter だけです。RasterOp モードは、compositionMode() で説明されているように、X11 でサポートされている。

compositionMode()も参照

void QPainter::setFont(const QFont &font)

ペインターのフォントを、与えられたfont に設定します。

このフォントは、後続のdrawText() 関数で使用されます。テキストの色はペンの色と同じです。

利用可能でないフォントを設定した場合、Qt はそれに近いものを見つけます。font() は setFont() で設定したものを返し、fontInfo() は実際に使用されているフォント(同じかもしれません)を返します。

font(),drawText(),Settingsも参照してください

void QPainter::setLayoutDirection(Qt::LayoutDirection direction)

テ キ ス ト を描画す る 際にペ イ ン タ が用い る レ イ ア ウ ト 方向を、 指定 し たdirection に設定 し ます。

デフォルトはQt::LayoutDirectionAuto で、 描画されたテキストから暗黙的に方向を決定します。

QTextOption::setTextDirection(),layoutDirection(),drawText(),Settingsも参照

void QPainter::setOpacity(qreal opacity)

ペ イ ン タ の不透明度 をopacity に設定 し ます。 値は 0.0 か ら 1.0 の範囲であ る 必要があ り 、 0.0 で完全透過、 1.0 で完全不透明 と な り ます。

ペインターに設定された不透明度は、すべての描画操作に個別に適用されます。

opacity()も参照してください

void QPainter::setPen(const QPen &pen)

ペインターのペンを、与えられたpen に設定します。

pen は、線と輪郭の描き方を定義し、テキストの色も定義します。

pen() およびSettingsも参照してください

void QPainter::setPen(Qt::PenStyle style)

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

ペインターのペンを、与えられたstyle 、幅 1 、黒色に設定します。

void QPainter::setPen(const QColor &color)

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

ペインターのペンのスタイルQt::SolidLine 、幅 1、指定されたcolor を設定します。

void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = true)

もしon が真であれば、与えられたレンダリングhint をペインターに設定します。そうでなければ、レンダリングヒントをクリアします。

setRenderHints()、renderHints()、Rendering Qualityも参照

void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)

on が true の場合、指定されたレンダーhints をペインターに設定します; そうでない場合、レンダーヒントをクリアします。

setRenderHint()、renderHints()、Rendering Qualityも参照して ください。

void QPainter::setTransform(const QTransform &transform, bool combine = false)

ワールド変換行列を設定します。combine が true の場合、指定されたtransform が現在の行列と結合されます。そうでない場合、現在の行列と置き換わります。

transform() およびsetWorldTransform()も参照してください

void QPainter::setViewTransformEnabled(bool enable)

enable が true の場合はビュー変換を有効にし、enable が false の場合はビュー変換を無効にします。

viewTransformEnabled() およびWindow-Viewport Conversion参照して ください。

void QPainter::setViewport(const QRect &rectangle)

ペインターのビューポート矩形を与えられたrectangle に設定し、ビュー変換を有効にします。

ビューポート矩形はビュー変換の一部です。ビューポートはデバイス座標系を指定します。その姉妹であるwindow() は、論理座標系を指定します。

デフォルトのビューポート矩形は、デバイスの矩形と同じです。

viewport()、viewTransformEnabled()、Window-Viewport Conversionも参照してください

void QPainter::setViewport(int x, int y, int width, int height)

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

ペインターのビューポート矩形を、 (x,y) で始まり、与えられたwidthheight を含む矩形に設定します。

void QPainter::setWindow(const QRect &rectangle)

ペインターのウィンドウを与えられたrectangle に設定し、ビュー変換を有効にします。

ウィンドウの矩形はビュー変換の一部です。ウ ィ ン ド ウは論理座標系を指定 し ます。その姉妹であるviewport() は、デバイス座標系を指定します。

デフォルトのウィンドウ矩形は、デバイスの矩形と同じです。

window()、viewTransformEnabled()、Window-Viewport Conversionも参照してください

void QPainter::setWindow(int x, int y, int width, int height)

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

ペインターのウィンドウを、 (x,y) で始まる矩形と、与えられたwidthheight に設定します。

void QPainter::setWorldMatrixEnabled(bool enable)

enable が true の場合は変換を有効にし、enable が false の場合は変換を無効にします。ワールド変換行列は変更されません。

worldMatrixEnabled(),worldTransform(),Coordinate Transformationsも参照してください

void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)

ワールド変換行列を設定します.combine が true の場合,指定されたmatrix が現在の行列と結合されます.そうでない場合,現在の行列と置き換わります.

worldTransform(),transform(),setTransform()も参照してください

void QPainter::shear(qreal sh, qreal sv)

座標系を (sh,sv) で切断します。

setWorldTransform() およびCoordinate Transformationsも参照してください

void QPainter::strokePath(const QPainterPath &path, const QPen &pen)

で指定したペンで、パスpath の輪郭(ストローク)を描画します。pen

fillPath() およびDrawingも参照して ください。

bool QPainter::testRenderHint(QPainter::RenderHint hint) const

hint が設定されている場合はtrue を返し、そうでない場合はfalse を返します。

renderHints() およびsetRenderHint()も参照

const QTransform &QPainter::transform() const

worldTransform() のエイリアス。世界変換行列を返します.

setTransform() およびworldTransform()も参照して ください。

void QPainter::translate(const QPointF &offset)

与えられたoffset によって座標系を変換します.つまり,与えられたoffset が点に加えられます.

setWorldTransform() およびCoordinate Transformations参照して ください.

void QPainter::translate(const QPoint &offset)

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

与えられたoffset によって座標系を変換する。

void QPainter::translate(qreal dx, qreal dy)

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

ベクトル (dx,dy) によって座標系を変換します。

bool QPainter::viewTransformEnabled() const

ビュー変換が有効な場合はtrue を返し、そうでない場合は false を返します。

setViewTransformEnabled() およびworldTransform()も参照してください

QRect QPainter::viewport() const

ビューポート矩形を返します。

setViewport() およびsetViewTransformEnabled() も参照

QRect QPainter::window() const

ウィンドウの矩形を返します。

setWindow() およびsetViewTransformEnabled()も参照

bool QPainter::worldMatrixEnabled() const

ワールド変換が有効な場合はtrue を返し、そうでない場合は false を返します。

setWorldMatrixEnabled()、worldTransform()、Coordinate System参照して ください。

const QTransform &QPainter::worldTransform() const

ワールド変換行列を返します。

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

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。