This class is used for capturing a screen. More...
| Header: | #include <QScreenCapture>
|
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia)target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
|
| qmake: | QT += multimedia
|
| Since: | Qt 6.5 |
| In QML: | ScreenCapture |
| Inherits: | QObject |
| enum | Error { NoError, InternalError, CapturingNotSupported, CaptureFailed, NotFound } |
| QMediaCaptureSession * | captureSession() const |
| QScreenCapture::Error | error() const |
| QString | errorString() const |
| bool | isActive() const |
| QScreen * | screen() const |
| void | setScreen(QScreen *screen) |
| void | activeChanged(bool) |
| void | errorChanged() |
| void | errorOccurred(QScreenCapture::Error error, const QString &errorString) |
| void | screenChanged(QScreen *) |
The class captures a screen. It is managed by the QMediaCaptureSession class where the captured screen can be displayed in a video preview object or recorded to a file.
QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&input);
QMediaRecorder recorder;
session.setRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();On Qt 6.5.2 and above, the following limitations apply to using QScreenCapture:
QScreenCapture class. Instead, the OS will show a screen selection wizard upon invoking QScreenCapture::setActive(true). The screen capture feature requires the installation of the ScreenCast service supported via XDG Desktop Portal and {https://pipewire.org/}{PipeWire} (0.3). These limitations might change in the future.AndroidManifest.xml file:<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>See also QWindowCapture and QMediaCaptureSession.
Enumerates error codes that can be signaled by the QScreenCapture class. errorString() provides detailed information about the error cause.
| Constant | Value | Description |
|---|---|---|
QScreenCapture::NoError |
0 |
No error |
QScreenCapture::InternalError |
1 |
Internal screen capturing driver error |
QScreenCapture::CapturingNotSupported |
2 |
Capturing is not supported |
QScreenCapture::CaptureFailed |
4 |
Capturing screen failed |
QScreenCapture::NotFound |
5 |
Selected screen not found |
This property holds whether the capturing is currently active.
Access functions:
| bool | isActive() const |
| void | setActive(bool active) |
Notifier signal:
| void | activeChanged(bool) |
[read-only] error : const Error
This property holds the code of the last error.
Access functions:
| QScreenCapture::Error | error() const |
Notifier signal:
| void | errorChanged() |
[read-only] errorString : const QString
This property holds a human readable string describing the cause of error.
Access functions:
| QString | errorString() const |
Notifier signal:
| void | errorChanged() |
This property holds the screen for capturing.
Access functions:
| QScreen * | screen() const |
| void | setScreen(QScreen *screen) |
Notifier signal:
| void | screenChanged(QScreen *) |
Returns the capture session this QScreenCapture is connected to.
Use QMediaCaptureSession::setScreenCapture() to connect the camera to a session.
[signal] void QScreenCapture::errorOccurred(QScreenCapture::Error error, const QString &errorString)
Signals when an error occurs, along with the errorString.
[slot] void QScreenCapture::start()
Starts screen capture.
[slot] void QScreenCapture::stop()
Stops screen capture.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.9/qscreencapture.html