2009-12-29 81 views

回答

1

你想緩存繪畫在QImageQPixmap(可能是QPixmap)。如果你做了很多,你可能也想看看QPixmapCache

此外,可以預先計算大量繪圖,然後使用QPainterPath s很快完成。我會經常使用它們並在必要時重新計算,而不是在像素圖中緩存整個繪畫事件。

編輯:

我也跑進QPicture簡單地提到,這也可能是你想要看的東西:

的QPicture類是油漆設備,記錄和重放QPainter命令。

+1

確保使用pixmap緩存的基於整數的接口,而不是基於舊的字符串的接口(在4.6中添加)。 – e8johan 2009-12-29 19:57:51

1

如果你想避免在paintEvent()中實例化變量,你可以使它們成爲成員變量 - 這包括QPainter對象。你只需要調用update(),當你需要小部件重新繪製自己。

爲什麼你不想從頭開始重新繪製它?這是某種不成熟的優化,還是你注意到放緩?

+0

沒有注意到放緩,做它優化。 – 2009-12-29 19:20:20

+0

完成我的paintEvent後,我發現每次只重繪整個東西並不複雜 – 2009-12-29 22:47:30