Beispiel einer Bildschirmaufnahme

Erfassen eines Bildschirms oder Fensters.

Screen Capture zeigt, wie Sie einen Bildschirm oder ein Fenster mit QScreenCapture und QWindowCapture erfassen können. Das Beispiel zeigt eine Liste von Bildschirmen und Fenstern und zeigt eine Live-Vorschau des ausgewählten Elements mit QMediaCaptureSession und QVideoWidget. Die Erfassung kann mit button gestartet und gestoppt werden.

Ausführen des Beispiels

Zum Ausführen des Beispiels von Qt Creatorzu starten, öffnen Sie den Modus Welcome und wählen Sie das Beispiel unter Examples aus. Weitere Informationen finden Sie unter Erstellen und Ausführen eines Beispiels.

Struktur der Anwendung

Das Beispiel besteht aus drei benutzerdefinierten Klassen. Die Benutzeroberfläche und alle Funktionen zur Bildschirmaufnahme sind in der Klasse ScreenCapturePreview implementiert. Die Klassen ScreenListModel und WindowListModel dienen nur als Modelle hinter den beiden Widgets QListView. Die Hauptfunktion erzeugt ein ScreenCapturePreview-Objekt, das wiederum Instanzen von QScreenCapture und QWindowCapture sowie QMediaCaptureSession und QVideoWidget erzeugt, zusätzlich zu allen UI-Widgets.

Die Bildschirm- und Fenstermodelle werden mit den Rückgabewerten von QGuiApplication::screens() bzw. QWindowCapture::capturableWindows() befüllt.

Wenn ein Listenelement ausgewählt wird, wird es mit setScreen() mit dem Objekt QScreenCapture verbunden, oder mit setWindow() mit dem Objekt QWindowCapture. Das Erfassungsobjekt ist mit dem Objekt QMediaCaptureSession über setScreenCapture() bzw. setWindowCapture() verbunden. Die Erfassungssitzung wiederum ist mit dem Objekt QVideoWidget über setVideoOutput() verbunden. So wird die Aufnahmeausgabe im Video-Widget auf der rechten Seite der Benutzeroberfläche in der Vorschau angezeigt.

Die Start-/Stopp-Schaltfläche ruft QScreenCapture::start() und QScreenCapture::stop() bzw. QWindowCapture::start() und QWindowCapture::stop() auf.

Ein QMessageBox wird eingeblendet, wenn das Signal errorOccurred ausgelöst wird.

Beispielprojekt @ code.qt.io

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