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 のプラットフォーム固有の機能へのアクセスを提供します:
画面へのネイティブインターフェース | |
macOS上の画面に対するネイティブインターフェース | |
Wayland上の画面に対するネイティブインターフェース | |
画面へのネイティブインターフェース |
要求されたインターフェースが利用できない場合、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.