在面板上绘制橡皮筋而不重新绘制 wxpython 中的所有内容

Drawing a rubberband on a panel without redrawing everything in wxpython

我使用 wx.PaintDC() 在面板上绘制形状。绘制形状后,当我左键单击并拖动鼠标时,会在形状上绘制一个橡皮筋(透明矩形)。拖动鼠标时,对于鼠标的每一次移动,都会发送一个 EVT_PAINT 并重新绘制所有内容(所有形状和矩形)。

我如何只在现有形状上绘制橡皮筋(我不想重新绘制形状),我的意思是,如果我可以将现有形状保存在某个 DC 对象上并只绘制橡皮筋在上面。以便应用程序绘制得更快。

您可能想看看 wx.Overlay. Look here 作为示例。