Sur cette page

Exemple de capture d'écran

Capturer un écran ou une fenêtre.

L'exemple « Capture d'écran » montre comment capturer un écran ou une fenêtre à l'aide de QScreenCapture et QWindowCapture. L'exemple affiche une liste d'écrans et de fenêtres et présente un aperçu en direct de l'élément sélectionné à l'aide de QMediaCaptureSession et QVideoWidget. La capture peut être lancée et arrêtée à l'aide de button.

Interface utilisateur affichant la liste des écrans accompagnée d'une capture d'écran

Exécution de l’exemple

Vous pouvez exécuter l’exemple à partir de :

Structure de l’application

L'exemple se compose de trois classes personnalisées. L’interface utilisateur et toutes les fonctionnalités de capture d’écran sont implémentées dans la classe `ScreenCapturePreview`. Les classes `ScreenListModel` et `WindowListModel` servent uniquement de modèles derrière les deux widgets ` QListView `. La fonction principale crée un objet `ScreenCapturePreview`, qui à son tour crée des instances de ` QScreenCapture ` et ` QWindowCapture`, ainsi que de ` QMediaCaptureSession ` et ` QVideoWidget`, en plus de tous les widgets de l’interface utilisateur.

Les modèles d’écran et de fenêtre sont renseignés respectivement avec les valeurs renvoyées par les méthodes QGuiApplication::screens() et QWindowCapture::capturableWindows().

Lorsqu’un élément de liste est sélectionné, il est connecté à l’objet ` QScreenCapture ` via ` setScreen()`, ou à l’objet ` QWindowCapture ` via ` setWindow()`. L’objet de capture est connecté à l’objet ` QMediaCaptureSession ` via ` setScreenCapture()` et ` setWindowCapture()`, respectivement. La session de capture est à son tour reliée à l’objet QVideoWidget à l’aide de setVideoOutput(). Ainsi, la sortie de la capture est prévisualisée dans le widget vidéo situé à droite de l’interface utilisateur.

Le bouton de démarrage/arrêt appelle les méthodes QScreenCapture::start() et QScreenCapture::stop(), ou QWindowCapture::start() et QWindowCapture::stop().

Une fenêtre « QMessageBox » s'affiche si le signal « errorOccurred » est émis.

Exemple de projet sur code.qt.io

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