Qt Quick Shared Image Provider
Zusammenfassung
Dieses Modul bietet Funktionen zur Einsparung von Speicher in Anwendungsfällen, in denen mehrere Qt Quick Anwendungen die gleichen lokalen Bilddateien verwenden. Zu diesem Zweck werden die dekodierten QImage Daten im gemeinsamen Systemspeicher abgelegt, so dass sie für alle Prozesse zugänglich sind (siehe QSharedMemory).
Dieses Modul teilt nur den CPU-Speicher. Es bietet keine gemeinsame Nutzung von GPU-Speicher oder Texturen.
Verwendung
Um dieses Modul zu verwenden, importieren Sie es wie folgt:
import Qt.labs.sharedimage
Die Freigabefunktionalität wird über QQuickImageProvider bereitgestellt. Verwenden Sie das Schema "image:" für die URL-Quelle des Bildes, gefolgt von der Kennung shared, gefolgt vom Pfad der Bilddatei. Zum Beispiel:
Image { source: "image://shared/usr/share/wallpapers/mybackground.jpg" }
Es wird nach der Datei /usr/share/wallpapers/mybackground.jpg gesucht. Der erste Prozess, der dies tut, liest die Bilddatei mit dem normalen Qt-Bildladen. Die dekodierten Bilddaten werden dann im gemeinsamen Speicher abgelegt, wobei der vollständige Dateipfad als Schlüssel verwendet wird. Spätere Prozesse, die das gleiche Bild anfordern, werden feststellen, dass die Daten bereits im gemeinsamen Speicher vorhanden sind. Sie verwenden dann diese Daten, anstatt die Bilddatei erneut zu laden.
Die gemeinsam genutzten Bilddaten bleiben so lange verfügbar, bis der letzte Prozess seinen letzten Verweis auf das gemeinsam genutzte Bild gelöscht hat, woraufhin sie automatisch freigegeben werden.
Wenn die gemeinsame Nutzung des Systemspeichers nicht möglich ist, fällt der Anbieter des gemeinsam genutzten Bildes auf das normale Laden eines nicht gemeinsam genutzten Bildes zurück.
Der Dateipfad muss absolut sein. Um einen relativen Pfad zu verwenden, machen Sie ihn mit Qt.resolvedUrl() absolut und ersetzen Sie das URL-Schema. Ein Beispiel:
... property string imagePrefix: Qt.resolvedUrl("../myimages/").replace("file://", "image://shared/") Image { source: imagePrefix + "myimage.png" }
Das Shared Image Modul bietet keine direkt verwendbaren QML-Typen.
© 2025 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.