En esta página

ScreenCapture QML Type

Este tipo se utiliza para capturar una pantalla. Más...

Import Statement: import QtMultimedia
Since: Qt 6.5
In C++: QScreenCapture

Propiedades

Descripción detallada

ScreenCapture captura una pantalla. Está gestionado por MediaCaptureSession donde la pantalla capturada puede mostrarse en un objeto de previsualización de vídeo o grabarse en un archivo.

El siguiente código muestra una simple sesión de captura con ScreenCapture reproduciendo la vista de la pantalla principal capturada en VideoOutput.

CaptureSession {
    id: captureSession
    screenCapture: ScreenCapture {
        id: screenCapture
        active: true
    }
    videoOutput: VideoOutput {
        id: videoOutput
    }
}

Limitaciones de la Captura de Pantalla

En Qt 6.5.2 y superiores, se aplican las siguientes limitaciones al uso de ScreenCapture:

  • Sólo es compatible con el backend FFmpeg.
  • En sistemas Linux que utilicen el compositor Wayland, la implementación de la captura de pantalla es experimental y tiene las siguientes limitaciones. Debido a las restricciones del protocolo Wayland, es imposible establecer y obtener la pantalla de destino a través de la API de la clase QScreenCapture. En su lugar, el sistema operativo mostrará un asistente de selección de pantalla al invocar QScreenCapture::setActive(true). La función de captura de pantalla requiere la instalación del servicio ScreenCast soportado a través de XDG Desktop Portal y {https://pipewire.org/}{PipeWire} (0.3). Estas limitaciones podrían cambiar en el futuro.
  • No es compatible con sistemas operativos móviles, excepto en Android. Screen Capture en Android necesita un permiso adicional del servicio de primer plano de Android que debe añadirse al archivo AndroidManifest.xml:
    <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>
  • En embebidos con EGLFS, su funcionalidad es limitada. Para aplicaciones Qt Quick, la clase se implementa actualmente a través de QQuickWindow::grabWindow, lo que puede causar problemas de rendimiento.
  • En la mayoría de los casos, establecemos una tasa de fotogramas de captura de pantalla igual a la tasa de refresco de la pantalla, excepto en Windows, donde la tasa puede ser flexible. Una tasa de fotogramas de este tipo (75/120 FPS) podría causar problemas de rendimiento en CPUs débiles si la pantalla capturada es de resolución 4K. En EGLFS, la tasa de fotogramas de captura está actualmente bloqueada en 30 FPS.

Véase también WindowCapture y CaptureSession.

Documentación de propiedades

active : bool

Describe si la captura está actualmente activa.

error : enumeration [read-only]

Devuelve un código del último error.

errorString : string [read-only]

Devuelve una cadena legible que describe la causa del error.

screen : Screen

Describe la pantalla a capturar.

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