Qt重绘持久性

问题描述:

我在Qt(C++)中创建了一个简单的Paint程序,您可以在其中选择一个形状,并沿着您的鼠标在画布上进行操作,直至单击,此时该形状锁定在该位置的屏幕上。然后用户可以以这种方式继续,向屏幕添加越来越多的形状。我的问题在于在点击后让这些形状保持原位。我尝试使用this-> setAttribute(Qt :: WA_OpaquePaintEvent,true),但只要我再次将该属性设置为false,我就会丢失数据。有什么方法可以“锁定”屏幕,以便在新东西被覆盖的情况下保留旧屏幕?Qt重绘持久性

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