QPainter Class
QPainter クラスは、ウィジェットやその他のペイントデバイスに対して低レベルのペイントを行います。詳細...
ヘッダ | #include <QPainter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
継承元: |
- 継承メンバを含む全メンバのリスト
- QPainterはPainting Classesの一部です。
注意:このクラスの関数はすべてリエントラントです。
パブリック型
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 & (QBrush *device) | background() const |
Qt::BGMode | backgroundMode() const |
ブール | begin(QPaintDevice*device) |
無効 | beginNativePainting() |
QRectF | boundingRect(const QRectF&rectangle, intflags, const QString&text) |
QRect | boundingRect(const QRect&rectangle, intflags, const QString&text) |
QRectF | boundingRect(const QRectF&rectangle, const QString&text, const QTextOption&option= QTextOption()) |
QRect | boundingRect(intx, inty, intw, inth, intflags, const QString&text) |
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, intstartAngle, intspanAngle) |
void | drawArc(const QRect&rectangle, intstartAngle, intspanAngle) |
void | drawArc(intx, inty, intwidth, intheight, intstartAngle, intspanAngle) |
void | drawChord(const QRectF&rectangle, intstartAngle, intspanAngle) |
void | drawChord(const QRect&rectangle, intstartAngle, intspanAngle) |
void | drawChord(intx, inty, intwidth, intheight, intstartAngle, intspanAngle) |
void | drawConvexPolygon(const QPointF*points, intpointCount) |
void | drawConvexPolygon(const QPolygon&polygon) |
void | drawConvexPolygon(const QPolygonF&polygon) |
void | drawConvexPolygon(const QPoint*points, intpointCount) |
void | drawEllipse(const QRectF&rectangle) |
void | drawEllipse(const QRect&rectangle) |
void | drawEllipse(const QPoint¢er, intrx, intry) |
void | drawEllipse(const QPointF¢er, qrealrx, qrealry) |
void | drawEllipse(intx, inty, intwidth, intheight) |
void | drawGlyphRun(const QPointF&position, const QGlyphRun&glyphs) |
void | drawImage(const QRectF&target, const QImage&image, const QRectF&source, Qt::ImageConversionFlagsflags= 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::ImageConversionFlagsflags= Qt::AutoColor) |
void | drawImage(const QPointF&point, const QImage&image, const QRectF&source, Qt::ImageConversionFlagsflags= Qt::AutoColor) |
void | drawImage(const QRect&target, const QImage&image, const QRect&source, Qt::ImageConversionFlagsflags= Qt::AutoColor) |
void | drawImage(intx, inty, const QImage&image, intsx= 0, intsy= 0, intsw= -1, intsh= -1, Qt::ImageConversionFlagsflags= Qt::AutoColor) |
void | drawLine(const QLineF&line) |
無効 | drawLine(const QLine&line) |
void | drawLine(const QPoint&p1, const QPoint&p2) |
void | drawLine(const QPointF&p1, const QPointF&p2) |
void | drawLine(intx1, inty1, intx2, inty2) |
void | drawLines(const QLineF*lines, intlineCount) |
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, intlineCount) |
void | drawLines(const QPoint*pointPairs, intlineCount) |
void | drawLines(const QPointF*pointPairs, intlineCount) |
void | drawPath(const QPainterPath&path) |
void | drawPicture(const QPointF&point, const QPicture&picture) |
void | drawPicture(const QPoint&point, const QPicture&picture) |
void | drawPicture(intx, inty, const QPicture&picture) |
void | drawPie(const QRectF&rectangle, intstartAngle, intspanAngle) |
void | drawPie(const QRect&rectangle, intstartAngle, intspanAngle) |
void | drawPie(intx, inty, intwidth, intheight, intstartAngle, intspanAngle) |
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(intx, inty, const QPixmap&pixmap) |
void | drawPixmap(intx, inty, intwidth, intheight, const QPixmap&pixmap) |
void | drawPixmap(intx, inty, const QPixmap&pixmap, intsx, intsy, intsw, intsh) |
void | drawPixmap(intx, inty, intw, inth, const QPixmap&pixmap, intsx, intsy, intsw, intsh) |
void | drawPixmapFragments(const QPainter::PixmapFragment*fragments, intfragmentCount, const QPixmap&pixmap, QPainter::PixmapFragmentHintshints= PixmapFragmentHints()). |
void | drawPoint(const QPointF&position) |
void | drawPoint(const QPoint&position) |
void | drawPoint(intx, inty) |
void | drawPoints(const QPointF*points, intpointCount) |
void | drawPoints(const QPolygon&points) |
void | drawPoints(const QPolygonF&points) |
void | drawPoints(const QPoint*points, intpointCount) |
void | drawPolygon(const QPointF*points, intpointCount, Qt::FillRulefillRule= Qt::OddEvenFill) |
void | drawPolygon(const QPolygon&points, Qt::FillRulefillRule= Qt::OddEvenFill) |
void | drawPolygon(const QPolygonF&points, Qt::FillRulefillRule= Qt::OddEvenFill) |
void | drawPolygon(const QPoint*points, intpointCount, Qt::FillRulefillRule= Qt::OddEvenFill) |
void | drawPolyline(const QPointF*points, intpointCount) |
void | drawPolyline(const QPolygon&points) |
void | drawPolyline(const QPolygonF&points) |
void | drawPolyline(const QPoint*points, intpointCount) |
void | drawRect(const QRectF&rectangle) |
void | drawRect(const QRect&rectangle) |
void | drawRect(intx, inty, intwidth, intheight) |
void | drawRects(const QRectF*rectangles, intrectCount) |
void | drawRects(const QList<QRect>&rectangles) |
void | drawRects(const QList<QRectF>&rectangles) |
void | drawRects(const QRect*rectangles, intrectCount) |
void | drawRoundedRect(const QRectF&rect, qrealxRadius, qrealyRadius, Qt::SizeModemode= Qt::AbsoluteSize) |
void | drawRoundedRect(const QRect&rect, qrealxRadius, qrealyRadius, Qt::SizeModemode= Qt::AbsoluteSize) |
void | drawRoundedRect(intx, inty, intw, inth, qrealxRadius, qrealyRadius, Qt::SizeModemode= Qt::AbsoluteSize) |
void | drawStaticText(const QPointF&topLeftPosition, const QStaticText&staticText) |
void | drawStaticText(const QPoint&topLeftPosition, const QStaticText&staticText) |
void | drawStaticText(intleft, inttop, 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(intx, inty, const QString&text) |
void | drawText(const QRect&rectangle, intflags, const QString&text, QRect*boundingRect= nullptr) |
void | drawText(const QRectF&rectangle, intflags, const QString&text, QRectF*boundingRect= nullptr) |
void | drawText(intx, inty, intwidth, intheight, intflags, 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(intx, inty, intwidth, intheight, const QPixmap&pixmap, intsx= 0, intsy= 0) |
ブール | end() |
void | endNativePainting() |
void | eraseRect(const QRectF&rectangle) |
void | eraseRect(const QRect&rectangle) |
void | eraseRect(intx, inty, intwidth, intheight) |
void | fillPath(const QPainterPath&path, const QBrush&brush) |
void | fillRect(const QRectF&rectangle, const QBrush&brush) |
無効 | fillRect(const QRect&rectangle, QGradient::Presetpreset) |
無効 | fillRect(const QRect&rectangle, Qt::BrushStylestyle) |
無効 | fillRect(const QRect&rectangle, Qt::GlobalColorcolor) |
void | fillRect(const QRect&rectangle, const QBrush&brush) |
void | fillRect(const QRect&rectangle, const QColor&color) |
void | fillRect(const QRectF&rectangle, QGradient::Presetpreset) |
void | fillRect(const QRectF&rectangle, Qt::BrushStylestyle) |
無効 | fillRect(const QRectF&rectangle, Qt::GlobalColorcolor) |
void | fillRect(const QRectF&rectangle, const QColor&color) |
void | fillRect(intx, inty, intwidth, intheight, QGradient::Presetpreset) |
void | fillRect(intx, inty, intwidth, intheight, Qt::BrushStylestyle) |
void | fillRect(intx, inty, intwidth, intheight, Qt::GlobalColorcolor) |
void | fillRect(intx, inty, intwidth, intheight, const QBrush&brush) |
void | fillRect(intx, inty, intwidth, intheight, const QColor&color) |
フォント | font() const |
QFontInfo | fontInfo() const |
QFontMetrics | fontMetrics() const |
ブール | hasClipping() const |
ブール | 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角度) |
void | save() |
void | scale(qrealsx, qrealsy) |
void | setBackground(const QBrush&brush) |
void | setBackgroundMode(Qt::BGModemode) |
void | setBrush(const QBrush&brush) |
void | setBrush(Qt::BrushStylestyle) |
void | setBrushOrigin(const QPointF&position) |
無効 | setBrushOrigin(const QPoint&position) |
void | setBrushOrigin(intx, inty) |
void | setClipPath(const QPainterPath&path, Qt::ClipOperationoperation= Qt::ReplaceClip) |
void | setClipRect(const QRectF&rectangle, Qt::ClipOperationoperation= Qt::ReplaceClip) |
void | setClipRect(intx, inty, intwidth, intheight, Qt::ClipOperationoperation= Qt::ReplaceClip) |
void | setClipRect(const QRect&rectangle, Qt::ClipOperationoperation= Qt::ReplaceClip) |
void | setClipRegion(const QRegion®ion, Qt::ClipOperationoperation= Qt::ReplaceClip) |
無効 | setClipping(boolenable) |
void | setCompositionMode(QPainter::CompositionModemode) |
void | setFont(const QFont&font) |
void | setLayoutDirection(Qt::LayoutDirectiondirection) |
void | setOpacity(qrealopacity) |
無効 | setPen(const QPen&pen) |
void | setPen(Qt::PenStylestyle) |
void | setPen(const QColor&color) |
void | setRenderHint(QPainter::RenderHinthint, boolon= true) |
void | setRenderHints(QPainter::RenderHintshints, boolon= true) |
void | setTransform(const QTransform&transform, boolcombine= false) |
void | setViewTransformEnabled(boolenable) |
void | setViewport(const QRect&rectangle) |
void | setViewport(intx, inty, intwidth, intheight) |
void | setWindow(const QRect&rectangle) |
無効 | setWindow(intx, inty, intwidth, intheight) |
void | setWorldMatrixEnabled(boolenable) |
void | setWorldTransform(const QTransform&matrix, boolcombine= false) |
void | shear(qrealsh, qrealsv) |
void | strokePath(const QPainterPath&path, const QPen&pen) |
ブール | testRenderHint(QPainter::RenderHinthint) const |
コンストラスト QTransform & | transform() const |
void | translate(const QPointF&offset) |
void | translate(const QPoint&offset) |
void | translate(qrealdx, qrealdy) |
ブール | viewTransformEnabled() const |
QRect | viewport() const |
QRect | window() const |
ブール | worldMatrixEnabled() const |
const QTransform & | worldTransform() const |
詳しい説明
QPainter は、GUI プログラムが必要とするほとんどの描画を行うために高度に最適化された関数を提供します。単純な線からパイやコードのような複雑な形状まで、あらゆるものを描画できます。また、整列されたテキストや pixmap も描画できます。通常は「自然な」座標系で描画しますが、ビュー変換やワールド変換も可能です。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 は、QPaintDevice とQPaintEngine のクラスとともに、Qt のペイントシステムの基礎となっています。QPainter は描画操作を行うために使用されるクラスです。QPaintDevice は QPainter を使用して描画できるデバイスを表します。QPaintEngine は、ペインターが異なるタイプのデバイスに描画するために使用するインターフェイスを提供します。ペインターがアクティブな場合、device() はペインターが描画するペイント・デバイスを返し、paintEngine() はペインターが現在操作しているペイント・エンジンを返します。詳しくはペイントシステムを参照してください。
時には、QPaintDevice 変わったペイントを他の人にさせたいこともあります。QPainter はこのための静的関数 setRedirected() をサポートしています。
警告: paintdeviceがウィジェットの場合、QPainterはpaintEvent()関数の中か、paintEvent()によって呼び出される関数の中でのみ使用できます。
設定
QPainterをあなたの好みに合わせて描画するために、カスタマイズできる設定がいくつかあります:
- font() はテキストの描画に使用されるフォントです。ペインターがisActive() を指定すると、fontInfo() とfontMetrics() 関数をそれぞれ使って、現在設定されているフォントとそのメトリクスに関する情報を取得できます。
- brush() は、図形の塗りつぶしに使われる色やパターンを定義します。
- pen() は、線や境界の描画に使われる色やスティプルを定義します。
- backgroundMode() は、background() があるかどうか、つまりQt::OpaqueMode かQt::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 レンダー・ヒントと組み合わせてよく使われます。
同心円を int と float で、アンチエイリアスレンダリングの有無で比較。浮動小数点精度のバージョンを使用すると、等間隔の輪ができます。アンチエイリアス付きレンダリングでは、滑らかな円になります。 | ![]() |
RenderHint enum は QPainter に対するフラグを指定し、任意のエンジンによって尊重されるかどうかを指定します。QPainter::Antialiasing は、エンジンがプリミティブのエッジを可能な限りアンチエイリアスすべきことを示し、QPainter::TextAntialiasing は、エンジンがテキストを可能な限りアンチエイリアスすべきことを示し、QPainter::SmoothPixmapTransform は、エンジンが滑らかなピクセルマップ変換アルゴリズムを使用すべきことを示します。
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つの形式は、Source とSourceOver です。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_Premultiplied 、QImage::Format_RGB32 、QImage::Format_RGB16 のフォーマットタイプのみを使用してください。QImage::Format_ARGB32 を含むその他のフォーマットでは、パフォーマンスが著しく低下します。このエンジンは、デフォルトでQWidget とQPixmap に使用されます。
- OpenGL 2.0 (ES) - このバックエンドは、ハードウェア・アクセラレーテッド・グラ フィックスの主要なバックエンドです。OpenGL 2.0 または OpenGL/ES 2.0 仕様をサポートするデスクトッ プマシンや組み込みデバイスで実行できます。これには、ここ数年で製造されたほとんどのグラフィックチップが含まれます。このエンジンは、QPainterをQOpenGLWidget 。
これらの操作は次のとおりです:
- 単純な変換、つまり平行移動と拡大縮小、それに0度、90度、180度、270度の回転。
drawPixmap()
単純変形と不透明度の組み合わせで、非平滑変形モード( レンダーヒントとして有効になっていない)。QPainter::SmoothPixmapTransform
- ベタ塗り、2 色線形グラデーション、単純変形による矩形塗りつぶし。
- 単純変形と交差クリップによる矩形クリッピング。
- コンポジションモード
QPainter::CompositionMode_Source
とQPainter::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 が望ましい。
コンポジションモードが設定されると、すべてのペイントオペレータ、ペン、ブラシ、グラデーション、および pixmap/image 描画に適用されます。
定数 | 値 | 説明 |
---|---|---|
QPainter::CompositionMode_SourceOver | 0 | これはデフォルトのモードです。描画元のアルファは、描画先の上にピクセルをブレンドするために使用されます。 |
QPainter::CompositionMode_DestinationOver | 1 | デスティネーションのアルファは、ソースピクセルの上にブレンドするために使用されます。このモードはCompositionMode_SourceOverの逆です。 |
QPainter::CompositionMode_Clear | 2 | デスティネーションのピクセルは、ソースとは無関係にクリアされます(完全に透明に設定されます)。 |
QPainter::CompositionMode_Source | 3 | 出力はソースピクセルです。(これは基本的なコピー操作を意味し、ソースピクセルが不透明な場合の SourceOver と同じです)。 |
QPainter::CompositionMode_Destination | 4 | 出力はデスティネーションピクセルです。これはブレンディングの効果がないことを意味します。このモードは CompositionMode_Source の逆です。 |
QPainter::CompositionMode_SourceIn | 5 | 出力はソースで、アルファはデスティネーションのアルファより小さくなります。 |
QPainter::CompositionMode_DestinationIn | 6 | 出力はデスティネーションで、アルファ値はソースのアルファ値によって減少します。このモードは CompositionMode_SourceIn の逆。 |
QPainter::CompositionMode_SourceOut | 7 | 出力はソースで、アルファ値はデスティネーションの逆数だけ減少する。 |
QPainter::CompositionMode_DestinationOut | 8 | 出力はデスティネーションで、アルファ値はソースの逆数だけ減少する。このモードは CompositionMode_SourceOut の逆です。 |
QPainter::CompositionMode_SourceAtop | 9 | ソースピクセルはデスティネーションピクセルの上にブレンドされ、ソースピクセルのアルファはデスティネーションピクセルのアルファの分だけ減少する。 |
QPainter::CompositionMode_DestinationAtop | 10 | デスティネーションピクセルはソースピクセルの上にブレンドされ、デスティネーションピクセルのアルファはデスティネーションピクセルのアルファによって減少される。このモードは CompositionMode_SourceAtop の逆です。 |
QPainter::CompositionMode_Xor | 11 | デスティネーションピクセルのアルファの逆数だけアルファが減少したソースは、ソースアルファの逆数だけアルファが減少したデスティネーションとマージされます。CompositionMode_Xor はビット単位の Xor とは異なります。 |
QPainter::CompositionMode_Plus | 12 | ソースピクセルとデスティネーションピクセルのアルファと色の両方が加算されます。 |
QPainter::CompositionMode_Multiply | 13 | 出力は、ソースカラーにデスティネーションカラーを掛けたものになります。ある色に白を掛けるとその色は変化せず、ある色に黒を掛けると黒になる。 |
QPainter::CompositionMode_Screen | 14 | ソースカラーとデスティネーションカラーは反転されてから乗算されます。色を白でスクリーニングすると白になり、黒でスクリーニングすると黒になる。 |
QPainter::CompositionMode_Overlay | 15 | デスティネーション・カラーに応じて、色を乗算またはスクリーニングします。デスティネーション・カラーはソース・カラーと混合され、デスティネーションの明暗を反映する。 |
QPainter::CompositionMode_Darken | 16 | ソースカラーとデスティネーションカラーの暗い方が選択されます。 |
QPainter::CompositionMode_Lighten | 17 | ソースカラーとデスティネーションカラーの明るい方が選択されます。 |
QPainter::CompositionMode_ColorDodge | 18 | デスティネーションカラーは、ソースカラーを反映して明るくなります。ソースカラーが黒の場合、デスティネーションカラーは変更されません。 |
QPainter::CompositionMode_ColorBurn | 19 | デスティネーション カラーは、ソース カラーを反映するように暗くなります。ソースカラーが白の場合、デスティネーションカラーは変更されません。 |
QPainter::CompositionMode_HardLight | 20 | ソースカラーに応じて、色を乗算またはスクリーニングします。明るいソースカラーはデスティネーションカラーを明るくし、暗いソースカラーはデスティネーションカラーを暗くします。 |
QPainter::CompositionMode_SoftLight | 21 | ソースカラーに応じて、色を濃くしたり薄くしたりします。CompositionMode_HardLight に似ています。 |
QPainter::CompositionMode_Difference | 22 | 明るい色から暗い色を減算します。白で描画すると描画先の色が反転し、 黒で描画すると描画先の色は変更されません。 |
QPainter::CompositionMode_Exclusion | 23 | CompositionMode_Difference に似ていますが、コントラストが低くなります。白で描画すると描画先の色が反転し、黒で描画すると描画先の色は変更されません。 |
QPainter::RasterOp_SourceOrDestination | 24 | ソースピクセルとデスティネーションピクセルに対してビットごとの OR 演算を行います (src OR dst)。 |
QPainter::RasterOp_SourceAndDestination | 25 | ソースピクセルとデスティネーションピクセルに対してビット単位の AND 演算を行います (src AND dst)。 |
QPainter::RasterOp_SourceXorDestination | 26 | ソースピクセルとデスティネーションピクセルに対してビット単位のXOR演算を行います(src XOR dst)。 |
QPainter::RasterOp_NotSourceAndNotDestination | 27 | ソースピクセルとデスティネーションピクセルに対してビット単位のNOR演算を行います((NOT src) AND (NOT dst))。 |
QPainter::RasterOp_NotSourceOrNotDestination | 28 | ソースピクセルとデスティネーションピクセルに対してビット単位のNAND演算を行います((NOT src) OR (NOT dst))。 |
QPainter::RasterOp_NotSourceXorDestination | 29 | ソースピクセルを反転し、デスティネーションとXORするビット演算((NOT src) XOR dst)。 |
QPainter::RasterOp_NotSource | 30 | ソースピクセルを反転させるビット演算(NOT src)。 |
QPainter::RasterOp_NotSourceAndDestination | 31 | ソースピクセルを反転し、デスティネーションとANDするビット演算((NOT src) AND dst)。 |
QPainter::RasterOp_SourceAndNotDestination | 32 | ソースが反転されたデスティネーションピクセルとANDされるビット演算(src AND (NOT dst))。 |
QPainter::RasterOp_NotSourceOrDestination | 33 | ソースを反転し,デスティネーションとOR演算するビット演算((NOT src) OR dst). |
QPainter::RasterOp_ClearDestination | 35 | デスティネーションのピクセルは,ソースとは無関係にクリア(0にセット)される. |
QPainter::RasterOp_SetDestination | 36 | デスティネーションのピクセルは、ソースとは無関係にセットされる(1にセットされる)。 |
QPainter::RasterOp_NotDestination | 37 | デスティネーションのピクセルが反転される(NOT dst)ビット演算を行う. |
QPainter::RasterOp_SourceOrNotDestination | 34 | ソースと,反転されたデスティネーションのピクセルを OR する(src OR (NOT dst))ビット演算を行う. |
compositionMode(),setCompositionMode(),Composition Modes,画像合成の例も参照してください 。
enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints.
定数 | 値 | 説明 |
---|---|---|
QPainter::OpaqueHint | 0x01 | 描画される pixmap フラグメントが不透明であることを示します。不透明な断片は描画が速くなる可能性があります。 |
PixmapFragmentHints 型はQFlags<PixmapFragmentHint> の typedef です。PixmapFragmentHint の値の OR の組み合わせを格納します。
QPainter::drawPixmapFragments() およびQPainter::PixmapFragmentも参照してください 。
enum QPainter::RenderHint
flags QPainter::RenderHints
レンダリングヒントはQPainter にフラグを指定するために使われます。
定数 | 値 | 説明 |
---|---|---|
QPainter::Antialiasing | 0x01 | 可能であれば、エンジンがプリミティブのエッジをアンチエイリアスすることを示します。 |
QPainter::TextAntialiasing | 0x02 | テ キ ス ト に対 し て可能な限 り ア ン タ イ ア ス をかけ る こ と を指定 し ます。テキストのアンチエイリアスを強制的に無効にするには、このヒントを使用しないでください。代わりに、フォントのスタイル戦略でQFont::NoAntialias を設定してください。 |
QPainter::SmoothPixmapTransform | 0x04 | テキス ト を、 可能な限 り テ キ ス ト のア ン チ ア リ ア ス を強制的に無効にす る には、 こ の ヒ ン ト は使用 し ないで く だ さ い。 |
QPainter::VerticalSubpixelPositioning | 0x08 | テキス ト を水平方向だけでな く 垂直方向にも ピ ク セル単位で配置で き る よ う に し ます (フ ォ ン ト エ ン ジ ン で対応 し てい る 場合)。こ れは現在、 すべてのプ ラ ッ ト フ ォーム上で、 ヒ ン テ ィ ン グ環境設定がQFont::PreferNoHinting の と き に Freetype でサポー ト さ れてお り 、 macOS でもサポー ト さ れてい ます。たいていの場合、 こ れに よ っ て視覚的な品質が向上す る こ と はあ り ませんが、 メ モ リ 消費が増加 し 、 テ キ ス ト 描画パフ ォーマ ン ス が若干低下す る 可能性があ り ます。したがって、ユースケースで必要とされない限り、これを有効にすることは推奨されません。そのようなユースケースの一つは、グリフを他のビジュアルプリミティブと整列させることです。この値は Qt 6.1 で追加されました。 |
QPainter::LosslessImageRendering | 0x40 | 可能な限り、ロスレス画像レンダリングを使用する。現在のところ、このヒントはQPainter がQPrinter またはQPdfWriter を通して PDF ファイルを出力するときにのみ使用されます。drawImage()/drawPixmap() を呼び出すと、非可逆 JPEG 圧縮ではなく、可逆圧縮アルゴリズムを使って画像がエンコードされます。この値は Qt 5.13 で追加されました。 |
QPainter::NonCosmeticBrushPatterns | 0x80 | 定義済みのパターン・スタイルの1つを使ってブラシでペイントする場合、ペイントされるオブジェクトと一緒にパターンも変換します。デフォルトでは、パターンを化粧品として扱い、アクティブな変換とは無関係に、パターンのピクセルがデバイスのピクセルに直接マッピングされます。この値は Qt 6.4 で追加されました。 |
RenderHints 型はQFlags<RenderHint> の typedef です。これは、RenderHint値のORの組み合わせを格納します。
renderHints(),setRenderHint(),Rendering Qualityも参照してください 。
メンバ関数ドキュメント
QPainter::QPainter()
ペインターを構築します。
[explicit]
QPainter::QPainter(QPaintDevice *device)
paintdevice のペイントを直ちに開始するペインターを構築します。
このコンストラクタは、QWidget::paintEvent() などの短命なペインターに便利で、一度だけ使用する必要があります。コンストラクタはbegin() を呼び、QPainter のデストラクタは自動的に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() を使うべきです。
[noexcept]
QPainter::~QPainter()
画家を破壊する。
const QBrush &QPainter::background() const
現在の背景ブラシを返します。
setBackground() およびSettingsも参照 。
Qt::BGMode QPainter::backgroundMode() const
現在の背景モードを返します。
setBackgroundMode() およびSettingsも参照 。
bool QPainter::begin(QPaintDevice *device)
ペイントdevice のペイントを開始し、成功すればtrue
を返し、失敗すればfalse
を返す。
すべてのペインター設定 (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 です:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
複数の水平アライメントフラグまたは複数の垂直アライメントフラグが設定されている場合,結果のアライメントは未定義である。
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::AlignmentFlag とQt::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)
与えられたrectangle 、startAngle 、spanAngle で定義される円弧を描画する。
startAngle とspanAngle は、1/16 度単位で指定する必要があります。つまり、完全な円は 5760 (16 * 360) に相当します。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。
![]() |
drawPie(),drawChord(),座標系も参照のこと 。
void QPainter::drawArc(const QRect &rectangle, int startAngle, int spanAngle)
これはオーバーロードされた関数である。
与えられたrectangle 、startAngle 、spanAngle で定義される円弧を描画します。
void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
これはオーバーロードされた関数である。
(x,y) で始まる矩形で定義される円弧を、指定されたwidth とheight 、および与えられたstartAngle とspanAngle で描画します。
void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
与えられたrectangle 、startAngle 、spanAngle で定義されるコードを描画します。コードは現在のbrush() で塗りつぶされる。
startAngleとspanAngleは1/16度単位で指定しなければならない。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。
![]() |
drawArc(),drawPie(),座標系も参照のこと 。
void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)
これはオーバーロードされた関数です。
与えられたrectangle 、startAngle 、spanAngle で定義されるコードを描画します。
void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
これはオーバーロードされた関数です。
(x,y) で始まる矩形で定義されるコードを、指定されたwidth とheight 、そして与えられたstartAngle とspanAngle で描画します。
void QPainter::drawConvexPolygon(const QPointF *points, int pointCount)
現在のペンを使って、配列points の最初のpointCount 点で定義される凸多角形を描画します。
![]() |
最初の点は暗黙のうちに最後の点に接続され、多角形は現在の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 で定義された楕円を描画します。
塗りつぶされた楕円のサイズはrectangle.size() です。描線された楕円のサイズは、rectangle.size() にペン幅を加えた値です。
void QPainter::drawEllipse(const QRect &rectangle)
これはオーバーロードされた関数です。
与えられたrectangle で定義される楕円を描画します。
void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry)
これはオーバーロードされた関数です。
半径rx とry を持つcenter に位置する楕円を描画します。
void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry)
これはオーバーロードされた関数です。
半径rx とry を持つcenter に位置する楕円を描画します。
void QPainter::drawEllipse(int x, int y, int width, int height)
これはオーバーロードされた関数です。
(x,y) で始まる矩形で定義される楕円を、与えられたwidth とheight で描画します。
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 を使って、どのようにしたいかを指定してください。
drawPixmap() およびQImage::devicePixelRatio()も参照 。
void QPainter::drawImage(const QPoint &point, const QImage &image)
これはオーバーロードされた関数である。
与えられたpoint に、与えられたimage を描画する。
void QPainter::drawImage(const QPointF &point, const QImage &image)
これはオーバーロードされた関数である。
与えられたpoint に、与えられたimage を描画する。
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 で定義された線を描画する。
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)
与えられたpoint で、与えられたpicture を再生する。
QPicture クラスは、QPainter コマンドを記録して再生するペイントデバイスである。ピクチャは、ペインタコマンドをプラットフォームに依存しない形式で IO デバイスにシリアライズします。ウィジェットや pixmap に描画できるものはすべて、ピクチャに格納することもできます。
この関数は、point =QPointF(0, 0) で呼び出されたとき、QPicture::play() とまったく同じ動作をします。
注意: ペインターの状態は、この関数によって保持されます。
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)
与えられたrectangle 、startAngle 、spanAngle で定義されたパイを描画します。
パイは現在のbrush() で満たされる。
startAngleとspanAngleは1/16度で指定しなければならない。角度の正の値は反時計回りを意味し、負の値は時計回りを意味する。0度は3時の位置である。
![]() |
drawEllipse(),drawChord(),座標系も参照のこと 。
void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)
これはオーバーロードされた関数です。
与えられたrectangle,startAngle およびspanAngle で定義されるパイを描画します。
void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
これはオーバーロードされた関数です。
(x,y) で始まる矩形で定義されるパイを、指定されたwidth とheight 、そして与えられたstartAngle とspanAngle で描画します。
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 を参照。
pixmap がQBitmap の場合、ペンの色を使用して「設定」されたビットで描画されます。backgroundMode がQt::OpaqueMode の場合、「設定されていない」ビットは背景ブラシの色を使って描画されます。backgroundMode がQt::TransparentMode の場合、「設定されていない」ビットは透明になります。グラデーションカラーやテクスチャカラーでのビットマップの描画はサポートされていません。
drawImage() およびQPixmap::devicePixelRatio()も参照 。
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)
これはオーバーロードされた関数です。
与えられたpoint を原点として、与えられたpixmap を描画します。
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)
これはオーバーロードされた関数です。
与えられたpoint を原点として、与えられたpixmap を描画します。
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)
これはオーバーロードされた関数です。
与えられたwidth とheight を用いて、pixmap を位置 (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 に1点を描画します。
void QPainter::drawPoint(int x, int y)
これはオーバーロードされた関数です。
位置 (x,y) に1点を描画します。
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 点で定義される多角形を描画します。
![]() |
最初の点は最後の点と暗黙的に接続され、多角形は現在のbrush() で塗りつぶされる。
fillRule がQt::WindingFill の場合、多角形は巻線塗りつぶしアルゴリズムを使って塗りつぶされます。fillRule がQt::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)
これはオーバーロードされた関数です。
与えられたpoints で定義される多角形を、塗りつぶしルールfillRule を用いて描画します。
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() 関数とは異なり、最後の点は最初の点に接続されず、ポリラインも塗りつぶされないことに注意。
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() にペン幅を加えたサイズになります。
drawRects(),drawPolygon(),Coordinate Systemも参照してください 。
void QPainter::drawRect(const QRect &rectangle)
これはオーバーロードされた関数です。
現在のペンとブラシで現在のrectangle を描画します。
void QPainter::drawRect(int x, int y, int width, int height)
これはオーバーロードされた関数です。
左上隅を (x,y) とし、与えられたwidth とheight で矩形を描画します。
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 を角丸で描画する。
引数xRadius とyRadius は,角丸矩形の角を定義する楕円の半径を指定する。mode がQt::RelativeSize のとき,xRadius とyRadius は,それぞれ矩形の幅と高さの半分のパーセンテージで指定され,0.0 から 100.0 の範囲でなければなりません。
塗りつぶし矩形のサイズは rect.size() です。描線された矩形は、rect.size() のサイズにペン幅を加えたサイズを持ちます。
![]() |
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)
与えられたtopLeftPosition に与えられたstaticText を描画します。
テキストは、ペインタに設定されたフォントと変換を使用して描画されます。ペインタに設定されたフォントや変換が、QStaticText のレイアウトを初期化するために使用されたものと異なる場合は、レイアウトを再計算する必要があります。QStaticText::prepare() を使ってstaticText を初期化し、後に描画されるフォントと変換を設定します。
topLeftPosition がstaticText が初期化されたとき、または最後に描画されたときと同じでない場合、テキストを新しい位置に変換するときに若干のオーバーヘッドが発生します。
注意: ペインターの変換がアフィン変換でない場合、staticText はdrawText() への通常の呼び出しを使用して描画され、パフォーマンス向上の可能性は失われます。
注意 : 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)
これはオーバーロードされた関数です。
座標left とtop にstaticText を描画します。
注意: y-position はフォントの上端として使用されます。
void QPainter::drawText(const QPointF &position, const QString &text)
与えられたposition から始まる、現在定義されているテキストの方向で、与えられたtext を描画する。
この関数はテキストを複数行に分割できないため、改行文字( \n)を処理しません。改行文字を含む複数行のテキストを描画したい場合や、テキストを折り返したい場合は、代わりに矩形を 取る QPainter::drawText() オーバーロードを使用してください。
デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。
注: y-position はフォントのベースラインとして使われます。
void QPainter::drawText(const QPoint &position, const QString &text)
これはオーバーロードされた関数である。
与えられたposition から始まる、現在定義されているテキスト方向で、与えられたtext を描画します。
デフォルトでは、QPainter はアンチエイリアスでテキストを描画します。
注意: y-position はフォントのベースラインとして使われます。
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 はフォントのベースラインとして使われます。
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 座標が フ ォ ン ト の上端 と し て用い ら れます。
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 です:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextDontClip
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
デフォルトでは、QPainter はテキストをアンチエイリアスで描画します。
注: rectangle の y 座標がフ ォ ン ト の上端 と し て用い ら れます。
Qt::AlignmentFlag,Qt::TextFlag,boundingRect(),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 です:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
デフォルトでは、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) は、描画されるペイントデバイスの左上の点を指定します; 与えられたwidth とheight を用いて。 (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) で始まる矩形の内側の領域を、与えられたwidth とheight で消去します。
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)
与えられたrectangle を指定されたbrush で塗りつぶします。
あるいは、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)
これはオーバーロードされた関数である。
与えられたrectangle を指定されたcolor で埋めます。
void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)
これはオーバーロードされた関数です。
(x,y) で始まる矩形を、与えられたグラデーションpreset を用いて、与えられたwidth とheight で塗りつぶします。
void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
これはオーバーロードされた関数です。
(x,y) で始まる矩形を、指定されたwidth とheight で、指定されたブラシstyle を使って塗りつぶします。
void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
これはオーバーロードされた関数です。
(x,y) で始まる矩形を、与えられたwidth とheight で、与えられたcolor を用いて埋めます。
void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)
これはオーバーロードされた関数です。
(x,y) で始まる矩形を、与えられたwidth とheight で、与えられたbrush を用いて埋めます。
void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)
これはオーバーロードされた関数です。
(x,y) で始まる矩形を、与えられたwidth とheight で、与えられた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
ペインターがアクティブな場合はペインターが現在操作しているペイントエンジンを返し、そうでない場合は 0 を返します。
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
ビットマップや pixmap を透過的に描画するには、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) 座標を指定します。
Qt 3 では、ウィジェットに親の背景を採用するためにbrushOrigin() が必要でしたが、Qt 4 のペインターは、ウィジェットのautoFillBackground プロパティを true に設定して明示的に指示しない限り、背景を描画しないので、このようなことはなくなりました。
brushOrigin() およびSettingsも参照してください 。
void QPainter::setBrushOrigin(const QPoint &position)
これはオーバーロードされた関数です。
ブラシの原点を与えられたposition に設定します。
void QPainter::setBrushOrigin(int x, int y)
これはオーバーロードされた関数です。
ブラシの原点を点 (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) で始まり、 与えられたwidth とheight を含む矩形に設定します。
void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
これはオーバーロードされた関数です。
クリッピングを有効にし、与えられたクリップoperation を使って、与えられたrectangle にクリップ領域を設定します。
void QPainter::setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip)
指定されたクリップ領域operation を使用して、指定されたregion にクリップ領域を設定します。デフォルトのクリップ操作は、現在のクリップ領域を置き換える。
クリップ領域は論理座標で指定することに注意してください。
clipRegion()、setClipRect()、Clippingも参照 。
void QPainter::setClipping(bool enable)
enable が真の場合はクリッピングを有効にし、enable が偽の場合はクリッピングを無効にする。
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 は線と輪郭の描き方を定義し、文字色も定義します。
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 が true の場合、指定されたレンダー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) で始まり、与えられたwidth とheight を含む矩形に設定します。
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) で始まる矩形と、与えられたwidth とheight に設定します。
void QPainter::setWorldMatrixEnabled(bool enable)
enable が真ならトランスフォームを有効にし、enable が偽ならトランスフォームを無効にする。ワールド変換行列は変更されません。
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()も参照してください 。
© 2025 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.