QPaintDevice Class

QPaintDevice クラスは、QPainter でペイントできるオブジェクトの基本クラスです。詳細...

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

QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, and QWidget

パブリック型

enum PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioF_EncodedB }

パブリック関数

virtual ~QPaintDevice()
int colorCount() const
int depth() const
qreal devicePixelRatio() const
qreal devicePixelRatioF() const
int height() const
int heightMM() const
int logicalDpiX() const
int logicalDpiY() const
virtual QPaintEngine *paintEngine() const = 0
bool paintingActive() const
int physicalDpiX() const
int physicalDpiY() const
int width() const
int widthMM() const

保護された関数

QPaintDevice()
virtual int metric(QPaintDevice::PaintDeviceMetric metric) const

詳細説明

ペイントデバイスは、QPainter を使って描画できる2次元空間を抽象化したものです。デフォルトの座標系では、原点は左上の位置にあります。Xは右に、Yは下に増加します。単位は1ピクセルです。

QPaintDevice の描画機能は、現在QWidget,QImage,QPixmap,QPicture,QPrinter サブクラスによって実装されています。

新しいバックエンドのサポートを実装するには、QPaintDeviceから派生し、仮想paintEngine ()関数を再実装して、この特定のデバイスでの描画に使用するペイントエンジンをQPainter 。また、デバイスに描画できるように、対応するペイントエンジンを作成する必要があります。つまり、QPaintEngine から派生し、その仮想関数を再実装する必要があります。

警告 警告: Qt では、ペイントデバイスを作成する前にQGuiApplication オブジェクトが存在する必要があります。ペイントデバイスはウィンドウシステムのリソースにアクセスし、これらのリソースはアプリケーションオブジェクトが作成される前には初期化されません。

QPaintDeviceクラスは、様々なデバイス・メトリクスを返すいくつかの関数を提供しています:depth ()関数は、ビット深度(ビットプレーン数)を返します。height ()関数は、デフォルトの座標系単位(たとえば、QPixmapQWidget の場合はピクセル)で高さを返し、heightMM ()はミリメートル単位でデバイスの高さを返します。同様に、width() とwidthMM() 関数は、それぞれデフォルトの座標系単位とミリメートル単位でデバイスの幅を返します。また、保護されたmetric() 関数を使用して、必要なPaintDeviceMetric を引数として指定することにより、メートル情報を取得することもできる。

logicalDpiX ()関数とlogicalDpiY ()関数は、デバイスの水平解像度と垂直解像度を1インチ当 たりのドット数で返す。physicalDpiX() とphysicalDpiY() 関数も、デバイスの解像度をドット/インチで返しますが、論理解像度と物理解像度が異なる場合、対応するQPaintEngine がマッピングを処理しなければならないことに注意してください。最後に、colorCount ()関数は、ペイント・デバイスで使用可能な色の数を返す。

QPaintEngine,QPainter,Coordinate System,Paint Systemも参照のこと

メンバ型ドキュメント

enum QPaintDevice::PaintDeviceMetric

ペイント・デバイスのさまざまなメトリクスを説明します。

定数説明
QPaintDevice::PdmWidth1デフォルトの座標系単位でのペイントデバイスの幅(例えば、QPixmapQWidget の場合はピクセル)。width() も参照。
QPaintDevice::PdmHeight2QPixmap QWidgetデ フ ォル ト 座標系単位で表 し た、 塗 り 装置の高 さ 。height() も参照。
QPaintDevice::PdmWidthMM3ペ イ ン ト デバ イ ス の幅を ミ リ メ ー ト ル単位で指定 し ます。widthMM() も参照。
QPaintDevice::PdmHeightMM4ペイントデバイスの高さをミリ単位で指定します。heightMM() も参照。
QPaintDevice::PdmNumColors5ペイントデバイスで使用可能な色の数。colorCount() も参照。
QPaintDevice::PdmDepth6ペイントデバイスのビット深度 (ビットプレーンの数)。depth() も参照。
QPaintDevice::PdmDpiX7デバイスの水平解像度 (dot per inch)。logicalDpiX()も参照。
QPaintDevice::PdmDpiY8デバイスの垂直解像度 (1 インチあたりのドット数)。logicalDpiY()も参照。
QPaintDevice::PdmPhysicalDpiX9デバイスの水平解像度(1インチあたりのドット数)。physicalDpiX()も参照。
QPaintDevice::PdmPhysicalDpiY10デバイスの垂直解像度(1インチあたりのドット数)。physicalDpiY() も参照。
QPaintDevice::PdmDevicePixelRatio11デバイスのピクセル比。一般的な値は、通常dpiのディスプレイでは1、高dpiの "retina "ディスプレイでは2である。
QPaintDevice::PdmDevicePixelRatioScaled12デバイスのピクセル比率。これは PdmDevicePixelRatio と同じですが、端数のスケールファクターを持つペイントデバイスをサポートするために、値が定数ファクターでスケーリングされる点が異なります。使用される定数倍率は devicePixelRatioFScale() です。この enum 値は Qt 5.6 で導入されました。
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8)13この enum 項目は、対応するB 項目と共に、エンコードされたdouble 浮動小数点値として、デバイスのピクセル比に使用されます。小数DPR値をサポートするQPaintDevice サブクラスは、metric()関数のオーバーライドで、これら2つのenum項目のサポートを実装する必要があります。戻り値は encodeMetricF() 関数の結果となる。
QPaintDevice::PdmDevicePixelRatioF_EncodedB (since Qt 6.8)14PdmDevicePixelRatioF_EncodedA を参照。

metric() およびdevicePixelRatio()も参照

メンバ関数ドキュメント

[noexcept protected] QPaintDevice::QPaintDevice()

ペイントデバイスを構築する。このコンストラクタは QPaintDevice のサブクラスからのみ呼び出すことができます。

[virtual noexcept] QPaintDevice::~QPaintDevice()

ペイント・デバイスを破棄し、ウィンドウ・システム・リソースを解放します。

int QPaintDevice::colorCount() const

ペイント・デバイスで利用可能な色の数を返します。利用可能な色の数が多すぎて int データ型で表現できない場合は、代わりに INT_MAX が返されます。

int QPaintDevice::depth() const

ペイントデバイスのビット深度(ビットプレーン数)を返します。

qreal QPaintDevice::devicePixelRatio() const

デバイスのピクセル比を返します。

一般的な値は、通常dpiのディスプレイの場合は1、高dpiの「網膜」ディスプレイの場合は2です。

qreal QPaintDevice::devicePixelRatioF() const

デバイスピクセル比:デバイスのピクセル比を浮動小数点数で返す。

int QPaintDevice::height() const

デ フ ォ ル ト 座標系単位で、 描画デバ イ ス の高 さ を返 し ます (た と えばQPixmapQWidget の場合は ピ ク セル)。

heightMM()も参照

int QPaintDevice::heightMM() const

ペイントデバイスの高さをミリメートル単位で返します。プラットフォームの制限により、この関数を使用して画面上のウィジェットの実際の物理的なサイズを決定することはできない場合があります。

height()も参照

int QPaintDevice::logicalDpiX() const

デバイスの水平解像度を1インチあたりのドット数で返します。X11の場合、これは通常、widthMM() から計算されるものと同じである。

logicalDpiX()がphysicalDpiX()と等しくない場合、対応するQPaintEngine が解像度のマッピングを処理しなければならないことに注意。

logicalDpiY() およびphysicalDpiX()も参照

int QPaintDevice::logicalDpiY() const

デバイスの垂直解像度を1インチあたりのドット数で返す。X11の場合、これは通常、heightMM() から計算されるものと同じである。

logicalDpiY()がphysicalDpiY()と等しくない場合、対応するQPaintEngine が解像度のマッピングを処理しなければならないことに注意。

logicalDpiX() およびphysicalDpiY()も参照

[virtual protected] int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const

与えられたペイントデバイスのメトリック情報を返すmetric

PaintDeviceMetricも参照

[pure virtual] QPaintEngine *QPaintDevice::paintEngine() const

デバイス上の描画に使用されているペイントエンジンへのポインタを返します。

bool QPaintDevice::paintingActive() const

デバイスが現在描画中である場合、つまり、誰かがこのデバイスに対してQPainter::begin() を呼び出したが、まだQPainter::end() を呼び出していない場合はtrue を返し、そうでない場合はfalse を返す。

QPainter::isActive()も参照

int QPaintDevice::physicalDpiX() const

デバイスの水平解像度を1インチあたりのドット数で返します。たとえば印刷の場合、この解像度は物理的なプリンタの解像度を指す。一方、論理DPIは、実際のペイントエンジンで使用される解像度を指します。

physicalDpiX() がlogicalDpiX() と等しくない場合は、対応するQPaintEngine が解像度のマッピングを処理しなければならないことに注意してください。

physicalDpiY() およびlogicalDpiX()も参照

int QPaintDevice::physicalDpiY() const

デバイスの水平解像度を1インチあたりのドット数で返す。たとえば印刷の場合、この解像度は物理的なプリンタの解像度を指す。一方、論理DPIは、実際のペイントエンジンで使用される解像度を指します。

physicalDpiY() がlogicalDpiY() と等しくない場合は、対応するQPaintEngine が解像度のマッピングを処理しなければならないことに注意してください。

physicalDpiX() およびlogicalDpiY()も参照

int QPaintDevice::width() const

描画デバイスの幅を、デフォルトの座標系単位(たとえば、QPixmap およびQWidget の場合はピクセル)で返します。

widthMM() も参照

int QPaintDevice::widthMM() const

ペ イ ン ト デバ イ ス の幅を ミ リ メ ー ト ル単位で返 し ます。プラットフォームの制限により、この関数を使用して画面上のウィジェットの実際の物理的なサイズを決定することはできない場合があります。

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

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