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 ErrorThis property holds the code of the last error.
Access functions:
| QScreenCapture::Error | error() const |
Notifier signal:
| void | errorChanged() |
[read-only] errorString : const QStringThis 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.