QPaintDevice


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

QPaintDevice オブジェクトは QPainter オブジェクトで描写できるオブジェクトの基底クラスです。
例えるならQPainterがペンで、QPaintDeviceはキャンパスになります。


描写デバイスは QPainter オブジェクトで描写できる抽象的な二次元空間です。
このクラスのデフォルトの座標系は左上に配置された原点を持ちます
単位はピクセルです。
QPaintDevice クラスの描写機能は今のところ、サブクラスである QWidget クラス、QImage クラス、QPixmap クラス、QPicture クラス及び QPrinter クラスで実装されています。
新たなバックエンドのサポートを実装するには、QPaintDevice クラスを継承させる必要があり、特定のデバイス上で描写するための描写エンジンとなる仮想関数 paintEngine() を再実装する必要があります。

注意
Qtではいかなるペイントデバイスを作成するよりも前に、QGuiApplication オブジェクトが存在している必要があります。ペイントデバイスはウィンドウシステムリソースにアクセスしますが、これらのリソースは Application オブジェクトが生成されるまでは初期化されません。

QPaintDeviceクラス は様々なデバイスの尺度を返す関数を提供します。
depth() はそのデバイスのビットの深さ(ビットプレーンの数)を返します。
height() はデフォルトの座標系の単位で、そのデバイスの高さを返します。
(例 QPixmapクラス 及び QWidgetクラス ではピクセル単位です)
一方 heightMM() はミリメートル単位で、そのデバイスの高さを返します
同様に width() 及び widthMM() はそれぞれデフォルトの座標系の単位で、デバイスの幅を返します。
代わりにprotected属性の metric() は所望の PaintDeviceMetric オブジェクトを引数として指定することで、尺度情報を取得できます
logicalDpiX() 及び logicalDpiY() はデバイスの水平方向及び垂直方向の解像度をdpiで返します
physicalDpiX() 及び physicalDpiY() も解像度を返しますが、論理的解像度と物理的解像度は異なることに注意してください
対応した QPaintEngine クラスは写像を扱わなければなりません
最後に colorCount() は描写デバイスで利用可能な異なる色の数を返します

QPaintDevice::QPaintDevice() [protected]
ペイントデバイスを生成します
サブクラスからのみ呼び出すことができます

QPaintDevice::~QPaintDevice() [virtual]
ペイントデバイスを破棄し、ウィンドウシステムリソースを解放します

int QPaintDevice::colorCount() const
ペイントデバイスで使用できる「色数」を取得します
利用可能な色数がint型で表現するには大きい値の場合、代わりにINT_MAX定数を返します。

int QPaintDevice::depth() const
ペイントデバイスの「ビット深度」(「「ビットプレーン」の数)を返します

int QPaintDevice::devicePixelRatio() const
デバイスの「デバイスピクセル比」を返します
一般的な値は2ですが、レティーナディスプレイは2になります。

int QPaintDevice::height() const
標準の座標系の単位でデバイスの高さを返します

int QPaintDevice::heightMM() const
ミリメートル単位でデバイスの高さを返します

int QPaintDevice::logicalDpiX() const
dpi単位でデバイスの水平方向の解像度を返します
フォントサイズを計算する場合に使用されます

int QPaintDevice::logicalDpiY() const
dpi単位でデバイスの垂直方向の解像度を返します
フォントサイズを計算する場合に使用されます

int QPaintDevice::metric(PaintDeviceMetric metric) const [virtual protected]
指定したペイントデバイス尺度 metric に対応した尺度情報を取得します

QPaintEngine * QPaintDevice::paintEngine() const [pure virtual]
デバイスに描写するために使用するペイントエンジン QPaintEngine オブジェクトのポインタを取得します

bool QPaintDevice::paintingActive() const
デバイスが現在描写中の場合はtrueを返し、そうでない場合はfalseを返します
つまり描写中というのはこのデバイスで、QPainter::begin() を呼んでまだ QPainter::end() が呼ばれていない状況です

int QPaintDevice::physicalDpiX() const
dpiでデバイスの水平方向の解像度を取得します
描写する場合、この解像度は物理的なプリンターの解像度を参照します
一方、論理的なdpiは実際のペイントエンジンで使用される解像度を参照します

int QPaintDevice::physicalDpiY() const
dpiでデバイスの垂直方向の解像度を取得します
描写する場合、この解像度は物理的なプリンターの解像度を参照します
一方、論理的なdpiは実際のペイントエンジンで使用される解像度を参照します


int QPaintDevice::width() const
標準の座標系の単位でペイントデバイスの幅を取得します
例えばQpixmap オブジェクト 及び QWidget オブジェクトではピクセル単位です


int QPaintDevice::widthMM() const
ミリメートル単位でペイントデバイスの幅を取得します
プラットフォームの制限により、この関数はスクリーン上のウィジェットの実際の物理的大きさを決定するために使用できない可能性があります