summaryrefslogtreecommitdiffstats
path: root/examples/multimedia/screencapture/doc/src/screencapture.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/multimedia/screencapture/doc/src/screencapture.qdoc')
-rw-r--r--examples/multimedia/screencapture/doc/src/screencapture.qdoc48
1 files changed, 48 insertions, 0 deletions
diff --git a/examples/multimedia/screencapture/doc/src/screencapture.qdoc b/examples/multimedia/screencapture/doc/src/screencapture.qdoc
new file mode 100644
index 000000000..405c59dbd
--- /dev/null
+++ b/examples/multimedia/screencapture/doc/src/screencapture.qdoc
@@ -0,0 +1,48 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \example screencapture
+ \title Screen Capture Example
+ \ingroup multimedia_examples
+ \examplecategory {Multimedia}
+ \brief Capturing a screen or window.
+ \meta {tag} {widgets}
+
+ \e{Screen Capture} demonstrates how to capture a screen or window using
+ QScreenCapture and QWindowCapture. The example shows a list of screens and
+ windows and displays a live preview of the selected item using a
+ QMediaCaptureSession and a QVideoWidget. Capturing can be started and stopped
+ with a \l{QPushButton}{button}.
+
+ \image screencapture.jpg
+
+ \include examples-run.qdocinc
+
+ \section1 Application Structure
+
+ The example consists of three custom classes. The UI and all screen capture
+ functionality is implemented in the class ScreenCapturePreview. The classes
+ ScreenListModel and WindowListModel only serve as models behind the two
+ QListView widgets. The main function creates a ScreenCapturePreview object,
+ which in turn creates instances of QScreenCapture and QWindowCapture,
+ and a QMediaCaptureSession and QVideoWidget, in addition to all the UI widgets.
+
+ The screen and window models are populated with the return values of
+ \l QGuiApplication::screens() and \l QWindowCapture::capturableWindows(),
+ respectively.
+
+ When a list item is selected, it is connected to the QScreenCapture object
+ with \l{QScreenCapture::}{setScreen()}, or to the QWindowCapture object
+ with \l{QWindowCapture::}{setWindow()}. The capture object is connected to
+ the QMediaCaptureSession object with \l{QMediaCaptureSession::}{setScreenCapture()}
+ and \l{QMediaCaptureSession::}{setWindowCapture()}, respectively.
+ The capture session in turn is connected to the QVideoWidget object with
+ \l{QMediaCaptureSession::}{setVideoOutput()}. Thus, the capture output is
+ previewed in the video widget on the right hand side of the UI.
+
+ The start/stop button calls \l QScreenCapture::start() and \l QScreenCapture::stop(),
+ or \l QWindowCapture::start() and \l QWindowCapture::stop().
+
+ A QMessageBox pops up if the \l{QScreenCapture::}{errorOccurred} signal is emitted.
+*/