QPaintDevice Class

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

ヘッダー #include <QPaintDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
によって継承される:

QImage QOpenGLPaintDevice, , , , , , andQPagedPaintDevice QPaintDeviceWindow QPicture QPixmap QSvgGenerator 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::PdmHeight2デ フ ォ ル ト 座標系単位での、 塗 り 装置の高 さ (た と えばQPixmapQWidget の ピ ク セル)。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の「retina」ディスプレイの場合は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

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

widthMM()も参照

int QPaintDevice::widthMM() const

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

width()も参照

© 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.