我試圖讓我的部件畫一個矩形,它接收到的每個paintEvent。矩形應該一次增加1px,填滿一個正方形。然而,我得到的只是最新的(也是最大的)矩形。Qt:爲什麼我的paintEvent()在執行任務前抹去所有東西?
void TestClass::paintEvent(QPaintEvent* e){
static int size = 1;
QStylePainter painter(this);
painter.setPen(Qt::blue);
painter.drawRect(QRect(50, 50, size, size));
size++;
}
我不明白爲什麼會這樣。我希望畫家能夠在已經存在的東西上畫畫。相反,它似乎刪除以前繪製的矩形,隨時留下一個矩形。有任何想法嗎?
setAutoFillBackground(true/false)
不會改變背景的顏色。
在mousePressEvent()
內部引發paintEvent I update()
。所以我的矩形隨着每次點擊而增長。
非常感謝。
您只能看到最大的正方形,因爲它完全覆蓋了之前繪製的所有較小的正方形。你期望看到什麼? – Flopp
@Flopp這很有趣,謝謝。矩形沒有填充,所以我沒有想到他們能夠覆蓋任何東西。我會看看我能否證實這一點。 – Jersey
恩,你說得對;你的代碼應該繪製一個未填充的矩形。 – Flopp