Ich versuche, etwas zu implementieren, das der "Rückgängig"-Funktion in vielen Bildbearbeitungsprogrammen ähnelt. Das Problem, das ich habe, ist folgendes: Ich versuche, eine Sicherungskopie eines QImage-Objekts in einem QVector zu erstellen (der bis zu 10 aktuelle QImage-Kopien für Sicherungszwecke speichert), und dann zu versuchen, diese Sicherungen in einer anderen Funktion abzurufen. Das Problem ist, dass die Sicherungskopie nicht richtig erstellt wird (denn wenn ich versuche, ein gesichertes Bild wiederherzustellen, passiert nichts). Ich weiß, dass das Problem irgendwo im Sicherungsteil und nicht im Wiederherstellungsteil liegt, denn wenn ich ein neues temporäres Image mit rotem Hintergrund sichere, wird es perfekt wiederhergestellt.
Dies ist der Code für die Sicherungsfunktion:
imageBackups.append(image);
wobei 'image' das QImage-Objekt ist, das ich zu sichern versuche
Dies ist eine alternative Sicherung (speichert ein rot gefärbtes Hintergrundbild) - ich habe dies nur benutzt, um zu sehen, ob diese Version der Sicherung funktioniert, was sie tut:
QImage newImage(QSize(100,100), QImage::Format_RGB32);
newImage.fill(qRgb(255, 0, 0));
imageBackups.append(newImage);
Und hier ist der Wiederherstellungscode:
image =imageBackups.at(imageBackups.size()-1);
QPainter painter(&image);
painter.drawImage(QPoint(0,0),imageBackups.at(imageBackups.size()-1));
image' ist genau wie newImage oben definiert, mit Ausnahme der Größe, die in diesem Fall 800x400 beträgt