Безопасно ли вызывать QImage::save() перед QPainter::end()

В этом коде:

QPainter painter(&image);

// do painting .......

painter.end(); // is this needed?
image.save(tempFileName);

мне нужно закрыть QPainter перед сохранением QImage, чтобы сбросить все изменения, или я могу сохранить его перед закрытием объекта QPainter?


person sashoalm    schedule 05.12.2012    source источник
comment
я думаю, что это хорошая идея, чтобы сохранить только после painter.end(). В документе не указано, какие именно ресурсы освобождаются при вызове end(). Также кажется более логичным писать изображение только тогда, когда вы закончите с ним, если вы не хотите делать иначе...   -  person UmNyobe    schedule 05.12.2012


Ответы (1)


Да, вы должны позвонить painter.end() до вызова image.save(). Поведение painter.end() в конечном итоге зависит от базового механизма рисования, используемого на любой платформе, на которой работает ваша программа. Вы можете обойтись без вызова image.save() перед painter.end() на некоторых платформах с некоторыми версиями Qt, но изменение платформы или версии Qt может вызвать проблемы позже на.

person RA.    schedule 05.12.2012