IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QScreenCapture Class

This class is used for capturing a screen.

This class was introduced in Qt 6.5.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QScreenCapture Class

  • Header: QScreenCapture

  • Since: Qt 6.5

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Multimedia)

    target_link_libraries(mytarget PRIVATE Qt6::Multimedia)

  • qmake: QT += multimedia

  • Inherited By:

  • Instantiated By: qml-qtmultimedia-screencapture.xml

  • Inherits: QObject

  • Inherited By:

  • Group: QScreenCapture is part of multimedia, multimedia_video

Detailed Description

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.

 
Sélectionnez
QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&input);
QMediaRecorder recorder;
session.setRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();

Screen Capture Limitations

On Qt 6.5.2 and 6.5.3, the following limitations apply to using QScreenCapture:

  • It is only supported with the FFmpeg backend.

  • It is supported on all desktop platforms, except Linux with Wayland compositor, due to Wayland protocol restrictions and limitations.

  • It is not supported on mobile operating systems, except on Android. There, you might run into performance issues as the class is currently implemented via QScreen::grabWindow, which is not optimal for the use case.

  • On Linux, it works with X11, but it has not been tested on embedded.

  • In most cases, we set a screen capture frame rate that equals the screen refresh rate, except on Windows, where the rate might be flexible. Such a frame rate (75/120 FPS) might cause performance issues on weak CPUs if the captured screen is of 4K resolution.

See Also

Member Type Documentation

 

enum QScreenCapture::Error

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

Property Documentation

 

active : bool

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:

  • error() const

Notifier signal:

[read-only] errorString : const QString

This property holds a human readable string describing the cause of error.

Access functions:

  • errorString() const

Notifier signal:

screen : QScreen*

This property holds the screen for capturing.

Access functions:

  • *screen() const

  • void setScreen( *screen)

Notifier signal:

  • void screenChanged(QScreen *)

Member Function Documentation

 

QMediaCaptureSession *QScreenCapture::captureSession() const

Returns the capture session this QScreenCapture is connected to.

Use QMediaCaptureSession::setScreenCapture() to connect the camera to a session.

void QScreenCapture::errorOccurred(QScreenCapture::Error error, const QString &errorString)

Signals when an error occurs, along with the errorString.

void QScreenCapture::start()

Starts screen capture.

void QScreenCapture::stop()

Stops screen capture.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+