好吧,我試圖在許多圖像繪圖程序中實現類似於「撤消」功能的東西..我遇到的問題是這樣的:我試圖讓QVector中的QImage對象的備份副本(可存儲多達10個用於備份的最新QImage副本),然後嘗試在另一個函數中檢索這些備份。問題是備份沒有正確創建(因爲當我嘗試恢復備份映像時,什麼也沒有發生)。我知道這個問題是在備份一部分,而不是在恢復部分,因爲當我備份用紅色背景的新的暫定圖像,它恢復完美的地方..難以存儲QImage,然後恢復它
這是備份功能代碼:
imageBackups.append(image);
其中「形象」是我想要備份的QImage對象..
這是一個備用備份(存儲紅色背景圖片) - 我用這只是爲了看看這個版本的備份工作,它可以:
QImage newImage(QSize(100,100), QImage::Format_RGB32);
newImage.fill(qRgb(255, 0, 0));
imageBackups.append(newImage);
這裏是回收的代碼:
image =imageBackups.at(imageBackups.size()-1);
QPainter painter(&image);
painter.drawImage(QPoint(0,0),imageBackups.at(imageBackups.size()-1));
「圖像」被定義酷似newImage以上,除了其是在這種情況下800x400大小..
QVector可能不是存儲備份映像的最佳數據結構。 QList或QQueue可能會更好用於該用途。 – 2010-06-25 19:52:19