このページでは

QScreen Class

QScreen クラスは、画面のプロパティを取得するために使用されます。詳細...

ヘッダー: #include <QScreen>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
継承元: QObject

プロパティ

パブリック関数

int angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const
QRect availableGeometry() const
QSize availableSize() const
QRect availableVirtualGeometry() const
QSize availableVirtualSize() const
int depth() const
qreal devicePixelRatio() const
QRect geometry() const
QPixmap grabWindow(WId window = 0, int x = 0, int y = 0, int width = -1, int height = -1)
QPlatformScreen *handle() const
bool isLandscape(Qt::ScreenOrientation o) const
bool isPortrait(Qt::ScreenOrientation o) const
qreal logicalDotsPerInch() const
qreal logicalDotsPerInchX() const
qreal logicalDotsPerInchY() const
QString manufacturer() const
QRect mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const
QString model() const
QString name() const
QNativeInterface *nativeInterface() const
Qt::ScreenOrientation nativeOrientation() const
Qt::ScreenOrientation orientation() const
qreal physicalDotsPerInch() const
qreal physicalDotsPerInchX() const
qreal physicalDotsPerInchY() const
QSizeF physicalSize() const
Qt::ScreenOrientation primaryOrientation() const
qreal refreshRate() const
QString serialNumber() const
QSize size() const
QTransform transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const
QRect virtualGeometry() const
QScreen *virtualSiblingAt(QPoint point)
QList<QScreen *> virtualSiblings() const
QSize virtualSize() const

シグナル

void availableGeometryChanged(const QRect &geometry)
void geometryChanged(const QRect &geometry)
void logicalDotsPerInchChanged(qreal dpi)
void orientationChanged(Qt::ScreenOrientation orientation)
void physicalDotsPerInchChanged(qreal dpi)
void physicalSizeChanged(const QSizeF &size)
void primaryOrientationChanged(Qt::ScreenOrientation orientation)
void refreshRateChanged(qreal refreshRate)
void virtualGeometryChanged(const QRect &rect)

詳細な説明

論理 DPI と物理 DPI に関する注意:物理 DPI は、利用可能な場合、実際の物理ピクセルサイズに基づいており、印刷プレビューや、画面に表示されるコンテンツの正確な物理的寸法を知りたい場合などに役立ちます。

論理 DPI は、フォントやユーザーインターフェースの要素をポイントサイズからピクセルサイズに変換するために使用され、物理 DPI とは異なる場合があります。デスクトップ環境の設定パネルで論理 DPI をユーザーが設定できる場合があり、これにより、ユーザーはさまざまなアプリケーションの UI やフォントサイズをグローバルに制御できます。

注: 物理DPIと論理DPIはどちらも 、デバイス非依存のドット単位で表されます。デバイス依存の密度を取得するには、QScreen::devicePixelRatio() を乗算してください。

QScreenオブジェクトを取得するには、プライマリ画面の場合はQGuiApplication::primaryScreen()を、すべての画面のリストを取得する場合はQGuiApplication::screens()を使用します。

QGuiApplication::primaryScreen() およびQGuiApplication::screens()も参照してください 。

プロパティのドキュメント

[read-only] availableGeometry : QRect

このプロパティは、画面の利用可能なジオメトリをピクセル単位で保持します

利用可能なジオメトリとは、タスクバーやシステムメニューなど、ウィンドウマネージャーによって予約された領域を除いたジオメトリのことです。

なお、X11 では、モニターが 1 台のみのシステムで、かつウィンドウマネージャが _NET_WORKAREA アトムを設定している場合にのみ、真の有効ジオメトリが返されます。それ以外の場合は、geometry() と等しくなります。これは X11 ウィンドウマネージャ仕様の制限によるものです。

アクセス関数:

QRect availableGeometry() const

通知シグナル:

void availableGeometryChanged(const QRect &geometry)

[read-only] availableSize : QSize

このプロパティは、画面の利用可能なサイズ(ピクセル単位)を保持します

利用可能なサイズは、タスクバーやシステムメニューなど、ウィンドウマネージャーによって予約されている領域を除いたサイズです。

アクセス関数:

QSize availableSize() const

Notifierシグナル:

void availableGeometryChanged(const QRect &geometry)

[read-only] availableVirtualGeometry : QRect

このプロパティには、この画面が属する仮想デスクトップの利用可能なジオメトリが格納されます

この画面に対応する仮想デスクトップの利用可能なジオメトリを返します。

これは、仮想デスクトップの兄弟インスタンスそれぞれの利用可能なジオメトリの和集合です。

アクセス関数:

QRect availableVirtualGeometry() const

通知シグナル:

void virtualGeometryChanged(const QRect &rect)

関連項目: availableGeometry() およびvirtualSiblings()。

[read-only] availableVirtualSize : QSize

このプロパティには、この画面が属する仮想デスクトップの利用可能なサイズが格納されます

この画面に対応する仮想デスクトップの利用可能なピクセルサイズを返します。

これは、仮想兄弟デスクトップの個々の利用可能なジオメトリの合計サイズです。

アクセス関数:

QSize availableVirtualSize() const

通知シグナル:

void virtualGeometryChanged(const QRect &rect)

availableSize() およびvirtualSiblings()も参照してください 。

[read-only] depth : const int

このプロパティは、画面の色深度を保持します

アクセス関数:

int depth() const

[read-only] devicePixelRatio : qreal

このプロパティは、画面における物理ピクセルとデバイス非依存ピクセルの比率を保持します

画面の物理ピクセルとデバイス非依存ピクセルの比率を返します。

この関数は、QWindow::devicePixelRatio() とは異なる値を返す場合があります。例えば、Wayland で小数倍率スケーリングを使用している場合や、サーフェスの解像度に影響を与えるウィンドウプロパティが設定されている場合などです。QWindow::devicePixelRatio() の使用を推奨します。

注:一部のプラットフォームでは 、ウィンドウのdevicePixelRatioと、そのウィンドウが表示されている画面のdevicePixelRatioが異なる場合があります。この関数は、対象となるウィンドウが不明な場合にのみ使用してください。対象となるウィンドウが分かっている場合は、代わりにQWindow::devicePixelRatio()を使用してください。

アクセス関数:

qreal devicePixelRatio() const

Notifierシグナル:

void physicalDotsPerInchChanged(qreal dpi)

関連項目: QWindow::devicePixelRatio() およびQGuiApplication::devicePixelRatio()。

[read-only] geometry : QRect

このプロパティは、画面のジオメトリをピクセル単位で保持します

例として、QRect (0, 0, 1280, 1024)が返される場合や、仮想デスクトップ環境ではQRect (1280, 0, 1280, 1024)が返される場合があります。

アクセス関数:

QRect geometry() const

Notifierシグナル:

void geometryChanged(const QRect &geometry)

[read-only] logicalDotsPerInch : qreal

このプロパティは、1インチあたりの論理ドット数またはピクセル数を保持します

この値を使用すると、フォントのポイントサイズをピクセルサイズに変換できます。

これは、logicalDotsPerInchX プロパティとlogicalDotsPerInchY プロパティの平均値を単純に算出した、便宜上のプロパティです。

アクセス関数:

qreal logicalDotsPerInch() const

通知信号:

void logicalDotsPerInchChanged(qreal dpi)

関連項目: logicalDotsPerInchX() およびlogicalDotsPerInchY()。

[read-only] logicalDotsPerInchX : qreal

このプロパティは、水平方向における1インチあたりの論理ドット数またはピクセル数を保持します

この値は、フォントのポイントサイズをピクセルサイズに変換するために使用されます。

アクセス関数:

qreal logicalDotsPerInchX() const

通知信号:

void logicalDotsPerInchChanged(qreal dpi)

関連項目: logicalDotsPerInchY()。

[read-only] logicalDotsPerInchY : qreal

このプロパティは、垂直方向における1インチあたりの論理ドット数またはピクセル数を保持します

この値は、フォントのポイントサイズをピクセルサイズに変換するために使用されます。

アクセス関数:

qreal logicalDotsPerInchY() const

通知信号:

void logicalDotsPerInchChanged(qreal dpi)

関連項目: logicalDotsPerInchX()。

[read-only] manufacturer : const QString

このプロパティには、画面の製造元が格納されます

アクセス機能:

QString manufacturer() const

[read-only] model : const QString

このプロパティには、画面のモデルが格納されています

アクセス機能:

QString model() const

[read-only] name : const QString

このプロパティには、画面を表す、ユーザーに表示可能な文字列が格納されています

たとえば、X11 では、これらは XRandr のスクリーン名(通常は「VGA1」、「HDMI1」など)に対応します。

注: ユーザーに表示される文字列が 、ネイティブ API の結果と一致することは保証されておらず、画面を一意に識別するために使用すべきではありません。

アクセス関数:

QString name() const

[read-only] nativeOrientation : Qt::ScreenOrientation

このプロパティは、ネイティブの画面向きを保持します

画面のネイティブ向きとは、デバイスのロゴステッカーが正しい向きで表示される向き、あるいはプラットフォームがこの機能をサポートしていない場合はQt::PrimaryOrientation を指します。

ネイティブの向きはハードウェアの特性であり、変化することはありません。

アクセス関数:

Qt::ScreenOrientation nativeOrientation() const

[read-only] orientation : Qt::ScreenOrientation

このプロパティは画面の向きを保持します

orientation プロパティは、ウィンドウシステムの観点から見た画面の向きを示します。

ほとんどのモバイルデバイスやタブレットコンピュータには、加速度センサーが搭載されています。Qt Sensors モジュールを使用すると、このセンサーの値を直接読み取ることができます。ただし、ウィンドウシステムは、デバイスの持ち方に応じて画面全体を自動的に回転させる場合があります。その場合、このorientation プロパティの値は変化します。

アクセス関数:

Qt::ScreenOrientation orientation() const

通知シグナル:

void orientationChanged(Qt::ScreenOrientation orientation)

関連項目: primaryOrientation() およびQWindow::contentOrientation()。

[read-only] physicalDotsPerInch : qreal

このプロパティは、1インチあたりの物理ドット数またはピクセル数を保持します。

この値は、画面上のピクセル密度を表します。基盤となるシステムが提供する情報によっては、この値が完全に正確ではない場合があります。

これは、physicalDotsPerInchX プロパティとphysicalDotsPerInchY プロパティの平均値を単純に算出した、便宜上のプロパティです。

注:物理 DPIはデバイス非依存のドットで表されます。デバイス依存の密度を求めるには、QScreen::devicePixelRatio() を乗算してください。

アクセス関数:

qreal physicalDotsPerInch() const

通知シグナル:

void physicalDotsPerInchChanged(qreal dpi)

関連項目: physicalDotsPerInchX() およびphysicalDotsPerInchY()。

[read-only] physicalDotsPerInchX : qreal

このプロパティは、水平方向における物理ドットまたはピクセル/インチ(dpi)の数を表します。

この値は、画面上の実際の水平方向のピクセル密度を表します。基盤となるシステムが提供する情報によっては、この値が完全に正確ではない場合があります。

注:物理 DPIは、デバイス非依存のドット単位で表されます。デバイス依存の密度を求めるには、QScreen::devicePixelRatio() を乗算してください。

アクセス関数:

qreal physicalDotsPerInchX() const

通知シグナル:

void physicalDotsPerInchChanged(qreal dpi)

関連項目 :physicalDotsPerInchY()

[read-only] physicalDotsPerInchY : qreal

このプロパティは、垂直方向における1インチあたりの物理ドット数またはピクセル数を保持します

この値は、画面上の実際の垂直方向のピクセル密度を表します。基盤となるシステムが提供する情報によっては、この値が完全に正確ではない場合があります。

注:物理 DPIは、デバイス非依存のドットで表されます。デバイス依存の密度を求めるには、QScreen::devicePixelRatio() を乗算してください。

アクセス関数:

qreal physicalDotsPerInchY() const

通知シグナル:

void physicalDotsPerInchChanged(qreal dpi)

関連項目 :physicalDotsPerInchX()

[read-only] physicalSize : QSizeF

このプロパティは、画面の物理的なサイズ(ミリメートル単位)を保持します。

物理サイズは、画面のディスプレイの実際の物理的な寸法を表します。

基盤となるシステムが提供する情報によっては、この値が完全に正確ではない場合があります。

アクセス関数:

QSizeF physicalSize() const

通知シグナル:

void physicalSizeChanged(const QSizeF &size)

[read-only] primaryOrientation : Qt::ScreenOrientation

このプロパティは、プライマリの画面向きを保持します

画面のジオメトリの幅が高さ以上である場合、プライマリ画面の向きは `Qt::LandscapeOrientation ` となり、それ以外の場合は `Qt::PortraitOrientation ` となります。このプロパティは、画面の向きが変更されたとき(つまり、ディスプレイが回転されたとき)に変化する可能性があります。ただし、この動作はプラットフォームに依存し、多くの場合、アプリケーションのマニフェストファイルで指定することができます。

アクセス関数:

Qt::ScreenOrientation primaryOrientation() const

Notifierシグナル:

void primaryOrientationChanged(Qt::ScreenOrientation orientation)

[read-only] refreshRate : qreal

このプロパティは、画面のおおよその垂直リフレッシュレート(Hz単位)を保持します

警告: QChronoTimer などのタイマーを使用して、画面のリフレッシュレートに基づいてアニメーションを制御することは避けてください 。代わりに、QWindow::requestUpdate() を使用してください。

アクセス関数:

qreal refreshRate() const

Notifierシグナル:

void refreshRateChanged(qreal refreshRate)

関連項目: QWindow::requestUpdate()。

[read-only] serialNumber : const QString

このプロパティには、画面のシリアル番号が格納されます

アクセス機能:

QString serialNumber() const

[read-only] size : QSize

このプロパティは、画面のピクセル解像度を保持します

アクセス関数:

QSize size() const

通知シグナル:

void geometryChanged(const QRect &geometry)

[read-only] virtualGeometry : QRect

このプロパティには、この画面が属する仮想デスクトップのピクセルジオメトリが格納されます

この画面に対応する仮想デスクトップのピクセルジオメトリを返します。

これは、仮想兄弟デスクトップの個々のジオメトリの和集合です。

アクセス関数:

QRect virtualGeometry() const

通知シグナル:

void virtualGeometryChanged(const QRect &rect)

関連項目: virtualSiblings()。

[read-only] virtualSize : QSize

このプロパティには、この画面が属する仮想デスクトップのピクセルサイズが格納されます

この画面に対応する仮想デスクトップのピクセルサイズを返します。

これは、仮想兄弟ウィンドウの個々のジオメトリの合計サイズです。

アクセス関数:

QSize virtualSize() const

通知シグナル:

void virtualGeometryChanged(const QRect &rect)

関連項目: virtualSiblings()。

メンバ関数のドキュメント

int QScreen::angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const

a からの回転から、b への回転に至る回転角度を計算するための便利な関数です。

結果は 0、90、180、または 270 になります。

Qt::PrimaryOrientation は、画面の `primaryOrientation()` として解釈されます。

QPixmap QScreen::grabWindow(WId window = 0, int x = 0, int y = 0, int width = -1, int height = -1)

指定されたwindow の内容を、QRect (x 、y 、width 、height )で制限してキャプチャし、ピクマップを作成して返します。window が0の場合、画面全体がキャプチャされます。

引数 (x,y) はウィンドウ内のオフセットを指定し、 (width,height) はコピーする領域を指定します。width が負の値の場合、関数はウィンドウの右端まですべてをコピーします。height が負の値の場合、関数はウィンドウの下端まですべてをコピーします。

offset および size 引数は、デバイス非依存ピクセル単位で指定されます。高DPI画面からグラブを行う場合、返されるピクマップは要求されたサイズよりも大きくなる可能性があります。この状況かどうかを確認するには、QPixmap::devicePixelRatio() を呼び出してください。

ウィンドウシステム識別子(WId )は、QWidget::winId() 関数を使用して取得できます。QWidget ではなくウィンドウ識別子を使用する理由は、アプリケーションの一部ではないウィンドウやウィンドウシステムフレームなどをキャプチャできるようにするためです。

window が0 の場合、動作はプラットフォームに依存します。

  • 座標が画面ローカルであるプラットフォーム (Windows、X11) では、(x 、y) はこの画面の原点に対する相対座標となります。
  • 座標がグローバルであるプラットフォーム (macOS) では、(x 、y) はこの画面の原点に対する相対座標となります。この場合、Windows と同じ結果を得るには、呼び出し元でscreen->geometry().topLeft() を差し引く必要があります。

プラットフォームを問わず画面全体を取得するには、座標を指定せずにgrabWindow(0) を使用してください。画面の一部のみを取得するコードでは、この違いを明示的に考慮する必要があります。

警告: iOS などのシステムでは、サンドボックス化やセキュリティ上の制限により、アプリケーションが所有していないウィンドウのピクセルを読み取ることができないため、アプリケーションの一部ではないウィンドウのキャプチャは サポートされていません。

grabWindow() 関数は、ウィンドウからではなく画面からピクセルを取得します。つまり、取得対象のウィンドウの上に別のウィンドウが部分的または完全に重なっている場合、その重なり合ったウィンドウのピクセルも取得されます。通常、マウスカーソルは取得されません。

X11に関する注意:指定されたwindow の深度がルートウィンドウの深度と異なっており、かつ別のウィンドウが取得対象のウィンドウを部分的または完全に覆っている場合、その上にあるウィンドウのピクセルは取得されません。ピクマップ内の覆われた領域の内容は未定義かつ初期化されていない状態になります。

Windows Vista以降では、Qt::WA_TranslucentBackground 属性を設定して作成されたレイヤードウィンドウのグラブは機能しません。代わりに、デスクトップウィジェットをグラブすれば機能するはずです。

警告:一般的に 、画面外領域のキャプチャは安全ではありません。これは、基盤となるウィンドウシステムによって異なります。

QPlatformScreen *QScreen::handle() const

プラットフォーム画面ハンドルを取得します。

Qt Platform Abstraction (QPA)も参照してください 。

bool QScreen::isLandscape(Qt::ScreenOrientation o) const

o がlandscapeまたはinverted landscapeの場合にtrue を返し、それ以外の場合はfalse を返す便利な関数です。

Qt::PrimaryOrientation は、画面のprimaryOrientation()として解釈されます。

bool QScreen::isPortrait(Qt::ScreenOrientation o) const

o がportraitまたはinverted portraitのいずれかである場合はtrue を返し、それ以外の場合はfalse を返す便利な関数です。

Qt::PrimaryOrientation は、画面のprimaryOrientation()として解釈されます。

QRect QScreen::mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &rect) const

2つの画面向き間の矩形をマッピングします。

これにより、画面の向きa がQt::PortraitOrientation またはQt::InvertedPortraitOrientation であり、かつ向きb がQt::LandscapeOrientation またはQt::InvertedLandscapeOrientation である場合、またはその逆の場合に、矩形rect のx軸とy軸が反転します。

Qt::PrimaryOrientation は、画面のprimaryOrientation()として解釈されます。

template <typename QNativeInterface> QNativeInterface *QScreen::nativeInterface() const

指定された型の画面用ネイティブインターフェースを返します。

この関数は、QNativeInterface 名前空間で定義されているQScreen のプラットフォーム固有の機能へのアクセスを提供します:

QNativeInterface::QAndroidScreen

画面へのネイティブインターフェース

QNativeInterface::QCocoaScreen

macOS上の画面に対するネイティブインターフェース

QNativeInterface::QWaylandScreen

Wayland上の画面に対するネイティブインターフェース

QNativeInterface::QWindowsScreen

画面へのネイティブインターフェース

要求されたインターフェースが利用できない場合、nullptr が返されます。

[signal] void QScreen::orientationChanged(Qt::ScreenOrientation orientation)

このシグナルは、orientation を引数として画面の向きが変更された際に発火します。

注: プロパティ `orientation` に対する通知 シグナルです。

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

[signal] void QScreen::primaryOrientationChanged(Qt::ScreenOrientation orientation)

このシグナルは、画面の主方向が変更された際に、引数として `orientation ` を伴って発せられます。

注: プロパティ `primaryOrientation` に関する通知 シグナルです。

関連項目: primaryOrientation()。

QTransform QScreen::transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect &target) const

向きa で定義される座標系から、向きb およびターゲット寸法target で定義される座標系へと写像する変換を計算するための便利な関数です。

例えば、a が Qt::Landscape、b が Qt::Portrait、target がQRect(0, 0, w, h) である場合、結果の変換は、点QPoint(0, 0) がQPoint(0, w) に、点QPoint(h, w) がQPoint(0, h) に写像されるようなものになります。 したがって、横向きの座標系QRect(0, 0, h, w) は、90度の回転を伴って、縦向きの座標系QRect(0, 0, w, h) に変換される。

Qt::PrimaryOrientation は、画面のprimaryOrientation()として解釈される。

QScreen *QScreen::virtualSiblingAt(QPoint point)

QScreen::virtualSiblings() のセット内のpoint にある画面を返します。いずれの画面の範囲外の場合は、nullptr を返します。

point は、各仮想兄弟セットのvirtualGeometry()を基準としています。

QList<QScreen *> QScreen::virtualSiblings() const

画面の仮想兄弟を取得します。

仮想兄弟とは、同じ仮想デスクトップを共有する画面インスタンスのことです。これらは共通の座標系を共有しており、ウィンドウは再作成することなく、これらの画面間で自由に移動または配置することができます。

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