2

このコードでは:

QPainter painter(&image);

// do painting .......

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

すべての変更をフラッシュするために、QImage を保存する前に QPainter を閉じる必要がありますか、それとも QPainter オブジェクトを閉じる前に保存できますか?

4

1 に答える 1

1

はい、電話painter.end()する前に電話する必要がありますimage.save()。最終的にの動作はpainter.end()、プログラムが実行されているプラ​​ットフォームで使用されている基本的なペイント エンジンに依存します。一部のバージョンの Qt を使用する一部のプラットフォームでは、image.save()以前painter.end()に呼び出すことで回避できる場合がありますが、プラットフォームまたは Qt のバージョンを変更すると、後で問題が発生する可能性があります。

于 2012-12-05T17:09:23.863 に答える