我试图让我的部件画一个矩形,它接收到的每个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