Sur cette page

QScreen Class

La classe QScreen permet d'interroger les propriétés de l'écran. En savoir plus...

En-tête : #include <QScreen>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : QObject

Propriétés

Fonctions publiques

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

Signaux

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)

Description détaillée

Remarque sur la différence entre les points par pouce (DPI) logiques et physiques : le DPI physique est basé sur la taille réelle des pixels lorsqu'elle est disponible, et s'avère utile pour l'aperçu avant impression et dans d'autres cas où il est souhaitable de connaître les dimensions physiques exactes du contenu affiché à l'écran.

Les points par pouce logiques sont utilisés pour convertir les tailles des polices et des éléments de l'interface utilisateur de points en pixels, et peuvent différer des points par pouce physiques. Les points par pouce logiques sont parfois configurables par l'utilisateur dans le panneau de configuration de l'environnement de bureau, afin de lui permettre de contrôler globalement les tailles de l'interface utilisateur et des polices dans différentes applications.

Remarque : les DPI physiques et logiques sonttous deux exprimés en points indépendants du périphérique. Multipliez-les par QScreen::devicePixelRatio() pour obtenir la densité dépendante du périphérique.

Pour obtenir un objet QScreen, utilisez QGuiApplication::primaryScreen() pour l’écran principal, ou QGuiApplication::screens() pour obtenir la liste de tous les écrans.

Voir également QGuiApplication::primaryScreen() et QGuiApplication::screens().

Documentation sur les propriétés

[read-only] availableGeometry : QRect

Cette propriété contient la géométrie disponible de l'écran en pixels

La géométrie disponible correspond à la géométrie hors zones réservées par le gestionnaire de fenêtres, telles que les barres de tâches et les menus système.

Remarque : sous X11, cette fonction ne renvoie la géométrie réellement disponible que sur les systèmes équipés d’un seul moniteur et si le gestionnaire de fenêtres a défini l’atome _NET_WORKAREA. Dans tous les autres cas, elle est égale à geometry(). Il s’agit d’une limitation de la spécification du gestionnaire de fenêtres X11.

Fonctions d'accès :

QRect availableGeometry() const

Signal de notification :

void availableGeometryChanged(const QRect &geometry)

[read-only] availableSize : QSize

Cette propriété contient la taille disponible de l'écran en pixels

La taille disponible correspond à la taille hors zones réservées par le gestionnaire de fenêtres, telles que les barres des tâches et les menus système.

Fonctions d'accès :

QSize availableSize() const

Signal de notification :

void availableGeometryChanged(const QRect &geometry)

[read-only] availableVirtualGeometry : QRect

Cette propriété contient la géométrie disponible du bureau virtuel auquel appartient cet écran

Renvoie la géométrie disponible du bureau virtuel correspondant à cet écran.

Il s'agit de l'union des géométries disponibles individuelles des frères virtuels.

Fonctions d'accès :

QRect availableVirtualGeometry() const

Signal de notification :

void virtualGeometryChanged(const QRect &rect)

Voir également availableGeometry() et virtualSiblings().

[read-only] availableVirtualSize : QSize

Cette propriété indique la taille disponible du bureau virtuel auquel appartient cet écran

Renvoie la taille en pixels disponible du bureau virtuel correspondant à cet écran.

Il s'agit de la taille combinée des géométries disponibles individuelles des bureaux virtuels apparentés.

Fonctions d’accès :

QSize availableVirtualSize() const

Signal de notification :

void virtualGeometryChanged(const QRect &rect)

Voir également availableSize() et virtualSiblings().

[read-only] depth : const int

Cette propriété indique la profondeur de couleur de l'écran

Fonctions d'accès :

int depth() const

[read-only] devicePixelRatio : qreal

Cette propriété contient le rapport entre les pixels physiques et les pixels indépendants du périphérique de l'écran

Renvoie le rapport entre les pixels physiques et les pixels indépendants du périphérique pour l'écran.

Cette fonction peut renvoyer une valeur différente de celle de ` QWindow::devicePixelRatio()` (), par exemple sur Wayland lors de l'utilisation d'un redimensionnement fractionnaire, ou si des propriétés de fenêtre affectant la résolution de la surface sont définies. Privilégiez l'utilisation de ` QWindow::devicePixelRatio()`.

Remarque : sur certaines plateformes, le devicePixelRatio d’une fenêtre et celui de l’écran sur lequel elle s’affiche peuvent être différents. N’utilisez cette fonction que lorsque vous ne savez pas quelle fenêtre vous ciblez. Si vous connaissez la fenêtre cible, utilisez plutôt QWindow::devicePixelRatio().

Fonctions d’accès :

qreal devicePixelRatio() const

Signal de notification :

void physicalDotsPerInchChanged(qreal dpi)

Voir également QWindow::devicePixelRatio() et QGuiApplication::devicePixelRatio().

[read-only] geometry : QRect

Cette propriété contient la géométrie de l'écran en pixels

À titre d'exemple, cela peut renvoyer QRect(0, 0, 1280, 1024), ou dans un environnement de bureau virtuel QRect(1280, 0, 1280, 1024).

Fonctions d'accès :

QRect geometry() const

Signal de notification :

void geometryChanged(const QRect &geometry)

[read-only] logicalDotsPerInch : qreal

Cette propriété indique le nombre de points logiques ou de pixels par pouce

Cette valeur peut être utilisée pour convertir les tailles de police en points en tailles en pixels.

Il s'agit d'une propriété pratique qui correspond simplement à la moyenne des propriétés « logicalDotsPerInchX » et « logicalDotsPerInchY ».

Fonctions d'accès :

qreal logicalDotsPerInch() const

Signal de notification :

void logicalDotsPerInchChanged(qreal dpi)

Voir également logicalDotsPerInchX() et logicalDotsPerInchY().

[read-only] logicalDotsPerInchX : qreal

Cette propriété indique le nombre de points logiques ou de pixels par pouce dans le sens horizontal

Cette valeur sert à convertir les tailles de police en tailles en pixels.

Fonctions d'accès :

qreal logicalDotsPerInchX() const

Signal de notification :

void logicalDotsPerInchChanged(qreal dpi)

Voir également logicalDotsPerInchY().

[read-only] logicalDotsPerInchY : qreal

Cette propriété indique le nombre de points logiques ou de pixels par pouce dans le sens vertical

Cette valeur sert à convertir les tailles de police en tailles en pixels.

Fonctions d'accès :

qreal logicalDotsPerInchY() const

Signal de notification :

void logicalDotsPerInchChanged(qreal dpi)

Voir également logicalDotsPerInchX().

[read-only] manufacturer : const QString

Cette propriété indique le fabricant de l'écran

Fonctions d'accès :

QString manufacturer() const

[read-only] model : const QString

Cette propriété contient le modèle de l'écran

Fonctions d'accès :

QString model() const

[read-only] name : const QString

Cette propriété contient une chaîne de caractères visible par l'utilisateur qui représente l'écran

Par exemple, sous X11, ces noms correspondent aux noms d'écran XRandr, généralement « VGA1 », « HDMI1 », etc.

Remarque : il n’est pas garanti quela chaîne de caractères visible par l’utilisateur corresponde au résultat fourni par les API natives, et elle ne doit pas être utilisée pour identifier de manière unique un écran.

Fonctions d’accès :

QString name() const

[read-only] nativeOrientation : Qt::ScreenOrientation

Cette propriété contient l'orientation native de l'écran

L'orientation native de l'écran est celle dans laquelle le logo de l'appareil apparaît à l'endroit, ou « Qt::PrimaryOrientation » si la plateforme ne prend pas en charge cette fonctionnalité.

L'orientation native est une caractéristique du matériel et ne change pas.

Fonctions d'accès :

Qt::ScreenOrientation nativeOrientation() const

[read-only] orientation : Qt::ScreenOrientation

Cette propriété indique l'orientation de l'écran

La propriété orientation indique l'orientation de l'écran du point de vue du système de fenêtrage.

La plupart des appareils mobiles et des tablettes sont équipés d'accéléromètres. Le module Qt Sensors permet de lire directement les données de ce capteur. Cependant, le système de fenêtrage peut faire pivoter automatiquement l'ensemble de l'écran en fonction de la façon dont l'appareil est tenu ; dans ce cas, la propriété orientation changera.

Fonctions d'accès :

Qt::ScreenOrientation orientation() const

Signal de notification :

void orientationChanged(Qt::ScreenOrientation orientation)

Voir également primaryOrientation() et QWindow::contentOrientation().

[read-only] physicalDotsPerInch : qreal

Cette propriété indique le nombre de points physiques ou de pixels par pouce

Cette valeur représente la densité de pixels à l'écran. Selon les informations fournies par le système sous-jacent, cette valeur peut ne pas être tout à fait exacte.

Il s'agit d'une propriété pratique qui correspond simplement à la moyenne des propriétés « physicalDotsPerInchX » et « physicalDotsPerInchY ».

Remarque : le DPIphysique est exprimé en points indépendants du périphérique. Multipliez cette valeur par QScreen::devicePixelRatio() pour obtenir la densité dépendante du périphérique.

Fonctions d’accès :

qreal physicalDotsPerInch() const

Signal de notification :

void physicalDotsPerInchChanged(qreal dpi)

Voir également physicalDotsPerInchX() et physicalDotsPerInchY().

[read-only] physicalDotsPerInchX : qreal

Cette propriété indique le nombre de points physiques ou de pixels par pouce dans le sens horizontal

Cette valeur représente la densité horizontale réelle en pixels sur l'écran. Selon les informations fournies par le système sous-jacent, cette valeur peut ne pas être tout à fait exacte.

Remarque : le DPIphysique est exprimé en points indépendants du périphérique. Multipliez cette valeur par QScreen::devicePixelRatio() pour obtenir la densité propre au périphérique.

Fonctions d'accès :

qreal physicalDotsPerInchX() const

Signal de notification :

void physicalDotsPerInchChanged(qreal dpi)

Voir également physicalDotsPerInchY().

[read-only] physicalDotsPerInchY : qreal

Cette propriété indique le nombre de points physiques ou de pixels par pouce dans le sens vertical

Cette valeur représente la densité verticale réelle en pixels sur l'écran. Selon les informations fournies par le système sous-jacent, cette valeur peut ne pas être tout à fait exacte.

Remarque : le DPIphysique est exprimé en points indépendants du périphérique. Multipliez-le par QScreen::devicePixelRatio() pour obtenir la densité dépendante du périphérique.

Fonctions d'accès :

qreal physicalDotsPerInchY() const

Signal de notification :

void physicalDotsPerInchChanged(qreal dpi)

Voir également physicalDotsPerInchX().

[read-only] physicalSize : QSizeF

Cette propriété contient la taille physique de l'écran (en millimètres)

La taille physique correspond aux dimensions réelles de l'écran.

Selon les informations fournies par le système sous-jacent, cette valeur peut ne pas être tout à fait exacte.

Fonctions d’accès :

QSizeF physicalSize() const

Signal de notification :

void physicalSizeChanged(const QSizeF &size)

[read-only] primaryOrientation : Qt::ScreenOrientation

Cette propriété définit l'orientation principale de l'écran

L'orientation principale de l'écran est « Qt::LandscapeOrientation » si la largeur de la géométrie de l'écran est supérieure ou égale à sa hauteur, ou « Qt::PortraitOrientation » dans le cas contraire. Cette propriété peut changer lorsque l'orientation de l'écran est modifiée (c'est-à-dire lorsque l'écran est pivoté). Ce comportement dépend toutefois de la plateforme et peut souvent être spécifié dans le fichier manifeste de l'application.

Fonctions d’accès :

Qt::ScreenOrientation primaryOrientation() const

Signal de notification :

void primaryOrientationChanged(Qt::ScreenOrientation orientation)

[read-only] refreshRate : qreal

Cette propriété indique la fréquence de rafraîchissement verticale approximative de l'écran en Hz

Avertissement : évitez d'utiliser la fréquence de rafraîchissement de l'écran pour piloter des animations via un minuteur tel que ` QChronoTimer`. Utilisez plutôt ` QWindow::requestUpdate()`.

Fonctions d'accès :

qreal refreshRate() const

Signal de notification :

void refreshRateChanged(qreal refreshRate)

Voir également QWindow::requestUpdate().

[read-only] serialNumber : const QString

Cette propriété contient le numéro de série de l'écran

Fonctions d'accès :

QString serialNumber() const

[read-only] size : QSize

Cette propriété contient la résolution en pixels de l'écran

Fonctions d'accès :

QSize size() const

Signal de notification :

void geometryChanged(const QRect &geometry)

[read-only] virtualGeometry : QRect

Cette propriété contient la géométrie en pixels du bureau virtuel auquel appartient cet écran

Renvoie la géométrie en pixels du bureau virtuel correspondant à cet écran.

Il s'agit de l'union des géométries individuelles des frères virtuels.

Fonctions d'accès :

QRect virtualGeometry() const

Signal de notification :

void virtualGeometryChanged(const QRect &rect)

Voir également ` virtualSiblings()`.

[read-only] virtualSize : QSize

Cette propriété contient la taille en pixels du bureau virtuel auquel appartient cet écran

Renvoie la taille en pixels du bureau virtuel correspondant à cet écran.

Il s'agit de la taille combinée des géométries individuelles des bureaux virtuels frères.

Fonctions d'accès :

QSize virtualSize() const

Signal de notification :

void virtualGeometryChanged(const QRect &rect)

Voir également virtualSiblings().

Documentation des fonctions membres

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

Fonction pratique permettant de calculer l'angle de rotation nécessaire pour passer de la rotation a à la rotation b.

Le résultat sera 0, 90, 180 ou 270.

Qt::PrimaryOrientation est interprétée comme l'primaryOrientation de l'écran ().

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

Crée et renvoie une image pixmap générée à partir du contenu de l'window spécifié, limité par QRect(x, y, width, height). Si window est égal à 0, l'écran entier est capturé.

Les arguments (x, y) spécifient le décalage dans la fenêtre, tandis que (width, height) spécifient la zone à copier. Si width est négatif, la fonction copie tout jusqu’au bord droit de la fenêtre. Si height est négatif, la fonction copie tout jusqu’au bas de la fenêtre.

Les arguments offset et size sont spécifiés en pixels indépendants du périphérique. La carte de pixels renvoyée peut être plus grande que la taille demandée lors d’une capture à partir d’un écran à haute résolution (DPI). Appelez la fonction QPixmap::devicePixelRatio() pour déterminer si c’est le cas.

L’identifiant du système de fenêtrage (WId) peut être récupéré à l’aide de la fonction QWidget::winId(). La raison pour laquelle on utilise un identifiant de fenêtre et non un QWidget est de permettre la capture de fenêtres qui ne font pas partie de l’application, de cadres du système de fenêtrage, etc.

Lorsque window vaut 0, le comportement dépend de la plate-forme.

  • Sur les plateformes où les coordonnées sont locales à l’écran (Windows, X11), (x, y) sont relatives à l’origine de cet écran.
  • Sur les plateformes où les coordonnées sont globales (macOS), (x, y) sont relatives au bureau virtuel. Cela oblige les appelants à soustraire screen->geometry().topLeft() pour obtenir le même résultat que sous Windows.

Pour capturer l’intégralité de l’écran de manière portable sur toutes les plateformes, utilisez grabWindow(0) sans spécifier de coordonnées. Le code qui capture une sous-zone doit tenir compte explicitement de cette différence.

Avertissement : la capture de fenêtres n’appartenant pas à l’application n’est pas prise en charge sur des systèmes tels qu’iOS, où le sandboxing et les mesures de sécurité empêchent la lecture des pixels des fenêtres n’appartenant pas à l’application.

La fonction `grabWindow()` capture les pixels de l’écran, et non ceux de la fenêtre ; ainsi, si une autre fenêtre recouvre partiellement ou entièrement celle que vous capturez, vous obtenez également les pixels de la fenêtre superposée. Le curseur de la souris n’est généralement pas capturé.

Remarque concernant X11 : si la fenêtre « window » fournie n’a pas la même profondeur que la fenêtre racine, et qu’une autre fenêtre recouvre partiellement ou entièrement celle que vous capturez, vous n’ obtiendrez pas les pixels de la fenêtre superposée. Le contenu des zones masquées dans la carte de pixels (pixmap) sera indéfini et non initialisé.

Sous Windows Vista et versions ultérieures, la capture d’une fenêtre en superposition, créée en définissant l’attribut ` Qt::WA_TranslucentBackground `, ne fonctionnera pas. En revanche, la capture du widget du bureau devrait fonctionner.

Avertissement : en général, la capture d’une zone située en dehors de l’écran n’est pas sans risque. Cela dépend du système de fenêtrage sous-jacent.

QPlatformScreen *QScreen::handle() const

Récupérer la poignée de l'écran de la plate-forme.

Voir également Abstraction de la plateforme Qt (QPA).

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

Fonction pratique qui renvoie ` true ` si ` o ` est en mode paysage ou en mode paysage inversé ; sinon, elle renvoie ` false`.

Qt::PrimaryOrientation est interprétée comme l'primaryOrientation() de l'écran.

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

Fonction pratique qui renvoie ` true ` si ` o ` est en mode portrait ou en mode portrait inversé ; sinon, elle renvoie ` false`.

Qt::PrimaryOrientation est interprétée comme l'primaryOrientation de l'écran ().

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

Effectue une correspondance entre le rectangle et les deux orientations de l'écran.

Cela inversera les dimensions x et y du rectangle rect si l'orientation a est Qt::PortraitOrientation ou Qt::InvertedPortraitOrientation et si l'orientation b est Qt::LandscapeOrientation ou Qt::InvertedLandscapeOrientation, ou inversement.

Qt::PrimaryOrientation est interprété comme la fonction « primaryOrientation() » de l'écran.

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

Renvoie une interface native du type spécifié pour l'écran.

Cette fonction permet d’accéder aux fonctionnalités spécifiques à la plateforme de QScreen, telles que définies dans l’espace de noms QNativeInterface:

QNativeInterface::QAndroidScreen

Interface native vers un écran

QNativeInterface::QCocoaScreen

Interface native vers un écran sous macOS

QNativeInterface::QWaylandScreen

Interface native vers un écran sous Wayland

QNativeInterface::QWindowsScreen

Interface native vers un écran

Si l'interface demandée n'est pas disponible, une valeur de type ` nullptr ` est renvoyée.

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

Ce signal est émis lorsque l'orientation de l'écran change, avec ` orientation ` comme argument.

Remarque : signalde notification pour la propriété orientation.

Voir également orientation().

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

Ce signal est émis lorsque l'orientation principale de l'écran change, avec orientation comme argument.

Remarque : signalde notification pour la propriété primaryOrientation.

Voir également primaryOrientation().

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

Fonction pratique permettant de calculer une transformation qui fait passer du système de coordonnées défini par l'orientation a au système de coordonnées défini par l'orientation b et les dimensions cibles target.

Par exemple, si a est Qt::Landscape, b est Qt::Portrait et target est QRect(0, 0, w, h), la transformation obtenue sera telle que le point QPoint(0, 0) sera mappé vers QPoint(0, w), et QPoint(h, w) sera mappé vers QPoint(0, h). Ainsi, le système de coordonnées « paysage » QRect(0, 0, h, w) est projeté (avec une rotation de 90 degrés) dans le système de coordonnées « portrait » QRect(0, 0, w, h).

Qt::PrimaryOrientation est interprété comme l’ primaryOrientation() de l’écran.

QScreen *QScreen::virtualSiblingAt(QPoint point)

Renvoie l'écran situé à l'adresse point s'il fait partie de l'ensemble QScreen::virtualSiblings(), ou nullptr s'il ne fait partie d'aucun écran.

L'point est lié à l'virtualGeometry() de chaque ensemble de frères et sœurs virtuels.

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

Récupérer les « frères et sœurs » virtuels de l'écran.

Les « frères et sœurs » virtuels sont les instances d’écran partageant le même bureau virtuel. Ils partagent un système de coordonnées commun, et les fenêtres peuvent être déplacées ou positionnées librement d’une instance à l’autre sans avoir à être recréées.

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