2009-10-29 97 views
4

我正在使用QPainter在窗口上獲取一些圖形。不幸的是,每次運行.paintEvent時,整個窗口都會被清除。我如何畫圖而不清除?即我如何不改變之前的塗料事件?Qt繪畫沒有清除背景

我使用的Qt4

+0

您正在使用哪個Qt版本? – 2009-10-29 15:35:06

回答

1

在QT3,從WidgetFlags enum設置Qt::WNoAutoErase標誌,以避免在窗口上的每個繪製事件清除。

您可以通過將該標誌傳遞給QWidget constructor來設置該標誌。

+0

Qt文檔說它不再需要。所以他不應該使用它 – 2009-10-29 15:33:04

+0

@Patrice:啊,是的 - 在Qt4中它不再起作用。這是一個Qt3解決方案。 – 2009-10-29 15:49:32

4

由於這兩個回覆僅適用於Qt3,因此這裏是Qt4的解決方案。您需要致電

setAttribute(Qt::WA_OpaquePaintEvent); 

(例如在構造函數中)遵循文檔here