如何在wxpython中的每次单击中删除旧事件

时间:2015-03-05 16:06:05

标签: python wxpython

我的以下代码在当前窗口的特定区域内每次鼠标左键单击时创建一个新图像。我怎样才能在每次点击时创建一个新图像,但也可以删除相同点击结果中的旧图像。

这是我的代码。

import wx

class MainWindow(wx.Frame):

def __init__(self, parent, title):
    super(MainWindow,self).__init__(parent, title=title, size=(800,480))
    self.SetBackgroundColour('white')

    self.Show()
    self.Bind(wx.EVT_LEFT_DOWN, self.onLeftDown)


def onLeftDown(self, event):
    """left mouse button is pressed"""
    pt = event.GetX()
    if pt >= 100 and pt <= 700:
       png = wx.Image('input.png', wx.BITMAP_TYPE_ANY).ConvertToBitmap()
       self.bitmap1 = wx.StaticBitmap(self, -1, png, (pt, 220), (5,60))

if __name__ == '__main__' :
  app = wx.App()
  MainWindow(None, title='App GUI')
  app.MainLoop()

1 个答案:

答案 0 :(得分:0)

我认为,在onLeftDown()方法结束时,png对象是垃圾收集的。通常,当您想要更改StaticBitmap窗口小部件的内容时,可以使用其SetBitmap方法。您可能需要查看本教程,以获取有关如何更改您正在查看的图像的一个很好的示例: