В этом коде:
QPainter painter(&image);
// do painting .......
painter.end(); // is this needed?
image.save(tempFileName);
мне нужно закрыть QPainter перед сохранением QImage, чтобы сбросить все изменения, или я могу сохранить его перед закрытием объекта QPainter?
Да, тебе следует позвонить painter.end()
до звонка image.save()
, Поведение painter.end()
в конечном счете, зависит от базового движка рисования, используемого на любой платформе, на которой работает ваша программа. Вы можете быть в состоянии сойти с звонка image.save()
до painter.end()
на немного платформы с немного версии Qt, но изменение вашей платформы или версии Qt может вызвать проблемы в дальнейшем.
Других решений пока нет …