Qt重绘持久性

Qt repaint permanence

本文关键字:持久性 Qt      更新时间:2023-10-16

我在Qt (c++)中创建了一个简单的绘画程序,在那里你选择一个形状,它跟随你的鼠标在画布上,直到你点击,在这一点上,形状锁定到屏幕上的那个位置。然后,用户可以继续以这种方式,在屏幕上添加越来越多的形状。我的问题在于让这些形状在我点击后保持原位。我尝试使用这个->setAttribute(Qt::WA_OpaquePaintEvent, true),但一旦我设置该属性为false,我就会失去我的数据。我是否有办法"锁定"屏幕,让我的旧内容留在屏幕上,而新内容被覆盖?

如果您想保留绘制的数据,您应该先绘制到QPixmap,然后在您的小部件上绘制这个QPixmap。