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:
Interface native vers un écran | |
Interface native vers un écran sous macOS | |
Interface native vers un écran sous Wayland | |
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.