Ich mache einen Snapshot (über einen ShaderEffectSource
mit live: false
) eines Items, aber ich bekomme manchmal (1 Fälle in 200) einen leeren Snapshot. Ich mache den Schnappschuss basierend auf einem Signal wie folgt:Kann ich benachrichtigt werden, wenn ein Artikel mit der Neulackierung fertig ist?
Image {
onStatusChanged: {
if (status == Image.Ready) {
snapshotter.makeSnapshot();
}
}
}
Dies ist nur als Gesamtzusammenhang. Ich werde jetzt keinen Testfall veröffentlichen, weil es eine große App ist und ich noch keinen Testfall isoliert habe. Das könnte für eine zukünftige Frage von Bedeutung sein.
Also frage ich nicht "wo ist der Fehler in meinem Code" noch. Stattdessen habe ich eine einfache Frage, die mir helfen kann, den Fehler zu beheben:
Kann ich benachrichtigt werden, wenn ein Artikel fertig ist, neu zu streichen?
Begründung: Vielleicht, wenn ich status == Image.Ready
bekommen, hat das Bild nur geladen und noch nicht die geladenen Daten in die Off-Screen-Oberfläche gemalt. Also, wenn mein gewünschtes Signal existiert, könnte ich auf es haken, anstatt auf Image.statusChanged
zu haken.
Hinweis: Ich konnte meine eigene NotifyingImage
Komponente implementieren, wie Image
arbeitet, sondern zusätzlich belichtet ein repainted
Signal. Aber ich würde gerne wissen, ob es einen eingebauten Weg gibt.
In Verbindung stehende Frage: "Get notified when QQuickItem will need updating". Aber dort ist der Fragesteller zufrieden mit dem Wissen, wenn der Artikel Daten aktualisiert wird, und ich frage nach einem repainted
Signal, das ist etwas, das passiert später als was er verlangt.
Das funktioniert und macht ziemlich viel Sinn. Ich habe Vorbehalte dagegen, aber da es so gut funktioniert, werde ich es so lange belassen, bis es vielleicht wieder bricht. Danke für die Hilfe zu meinen "qt" Fragen :) –
Gern geschehen! Ihre Fragen sind immer eine lustige und interessante Herausforderung :-) – derM