En esta página

Qt Quick Shared Image Provider

Resumen

Este módulo proporciona funcionalidad para ahorrar memoria en casos de uso en los que varias aplicaciones Qt Quick utilizan los mismos archivos de imagen locales. Para ello, coloca los datos decodificados de QImage en la memoria compartida del sistema, haciéndola accesible a todos los procesos (véase QSharedMemory).

Este módulo sólo comparte la memoria de la CPU. No permite compartir la memoria de la GPU ni las texturas.

Uso

Para utilizar este módulo, impórtalo de la siguiente manera:

import Qt.labs.sharedimage

La funcionalidad de compartición se proporciona a través de QQuickImageProvider. Utilice el esquema "image:" para la fuente URL de la imagen, seguido del identificador shared, seguido de la ruta del archivo de imagen. Por ejemplo:

Image { source: "image://shared/usr/share/wallpapers/mybackground.jpg" }

Esto buscará el archivo /usr/share/wallpapers/mybackground.jpg. El primer proceso que lo haga leerá el archivo de imagen utilizando la carga de imágenes normal de Qt. Los datos decodificados de la imagen se colocarán en la memoria compartida, utilizando la ruta completa del archivo como clave. Los procesos posteriores que soliciten la misma imagen descubrirán que los datos ya están disponibles en la memoria compartida. Los procesos posteriores que soliciten la misma imagen descubrirán que los datos ya están disponibles en la memoria compartida y los utilizarán en lugar de volver a cargar el archivo de imagen.

Los datos de la imagen compartida estarán disponibles hasta que el último proceso haya borrado su última referencia a la imagen compartida, momento en el que se liberarán automáticamente.

Si la memoria compartida del sistema no está disponible, el proveedor de imágenes compartidas vuelve a la carga normal de imágenes no compartidas.

La ruta del archivo debe ser absoluta. Para utilizar una ruta relativa, hágala absoluta utilizando Qt.resolvedUrl() y sustituya el esquema URL. Por ejemplo:

...
property string imagePrefix: Qt.resolvedUrl("../myimages/").replace("file://", "image://shared/")
Image { source: imagePrefix + "myimage.png" }

El módulo de imagen compartida no proporciona ningún tipo QML directamente utilizable.

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