ScreenCapture QML Type
Ce type est utilisé pour capturer un écran. Plus d'informations...
| Import Statement: | import QtMultimedia |
| Since: | Qt 6.5 |
| In C++: | QScreenCapture |
Propriétés
- active : bool
- error : enumeration
- errorString : string
- screen : Screen
Description détaillée
ScreenCapture permet de capturer un écran. Elle est gérée par MediaCaptureSession où l'écran capturé peut être affiché dans un objet de prévisualisation vidéo ou enregistré dans un fichier.
Le code ci-dessous montre une session de capture simple avec ScreenCapture qui lit la vue de l'écran principal capturé dans VideoOutput.
CaptureSession { id: captureSession screenCapture: ScreenCapture { id: screenCapture active: true } videoOutput: VideoOutput { id: videoOutput } }
Limites de la capture d'écran
Sur Qt 6.5.2 et plus, les limitations suivantes s'appliquent à l'utilisation de ScreenCapture :
- Elle n'est prise en charge qu'avec le backend FFmpeg.
- Sur les systèmes Linux utilisant le compositeur Wayland, l'implémentation de la capture d'écran est expérimentale et comporte les limitations suivantes. En raison des restrictions du protocole Wayland, il est impossible de définir et d'obtenir l'écran cible via l'API de la classe
QScreenCapture. Au lieu de cela, le système d'exploitation affichera un assistant de sélection d'écran lors de l'invocation deQScreenCapture::setActive(true). La fonction de capture d'écran nécessite l'installation du service ScreenCast pris en charge par XDG Desktop Portal et {https://pipewire.org/}{PipeWire} (0.3). Ces limitations pourraient changer à l'avenir. - Elle n'est pas prise en charge sur les systèmes d'exploitation mobiles, sauf sur Android. Screen Capture sur Android nécessite l'ajout au fichier
AndroidManifest.xmld'une autorisation supplémentaire pour le service Android de premier plan:<manifest ...> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" /> <application ...> <service android:name="org.qtproject.qt.android.multimedia.QtScreenCaptureService" android:foregroundServiceType="mediaProjection" android:exported="false"/> </service> </application> </manifest> - Sur les systèmes embarqués avec EGLFS, la fonctionnalité est limitée. Pour les applications Qt Quick, la classe est actuellement implémentée via QQuickWindow::grabWindow, ce qui peut entraîner des problèmes de performance.
- Dans la plupart des cas, nous définissons une fréquence d'images pour la capture d'écran qui est égale à la fréquence de rafraîchissement de l'écran, sauf sous Windows, où la fréquence peut être flexible. Une telle fréquence d'images (75/120 FPS) peut causer des problèmes de performance sur des CPU faibles si l'écran capturé est d'une résolution de 4K. Sur l'EGLFS, la fréquence de capture est actuellement bloquée à 30 FPS.
Voir aussi WindowCapture et CaptureSession.
Documentation sur les propriétés
active : bool
Indique si la capture est actuellement active.
error : enumeration [read-only]
Renvoie le code de la dernière erreur.
errorString : string [read-only]
Renvoie une chaîne lisible par l'homme décrivant la cause de l'erreur.
screen : Screen
Décrit l'écran à capturer.
© 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.