2010-03-15 9 views
0

考虑下面这个简单的程序:如何让wxPython应用程序不断更新和执行代码?

import wx 

class TestDraw(wx.Panel): 
    def __init__(self,parent=None,id=-1): 
     wx.Panel.__init__(self,parent,id,style=wx.TAB_TRAVERSAL) 
     self.SetBackgroundColour("#FFFFFF") 
     self.Bind(wx.EVT_PAINT,self.onPaint) 
     self.SetDoubleBuffered(True) 
     self.circleX=320 
     self.circleY=240 

    def onPaint(self, event): 
     event.Skip() 
     dc=wx.PaintDC(self) 
     dc.BeginDrawing() 
     dc.DrawCircle(self.circleX,self.circleY,100) 
     dc.EndDrawing() 

class TestFrame(wx.Frame): 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title=title, size=(640,480)) 
     self.mainPanel=TestDraw(self,-1) 

     self.Show(True) 


app = wx.App(False) 
frame = TestFrame(None,"Test App") 
app.MainLoop() 

我怎样才能改变它,这样我可以执行逻辑和以恒定速率重绘面板?我希望圆圈在屏幕上反弹,但我无法弄清楚我会改变它的x和y变量的地方。

回答

3

您可以使用wxTimer定期调用onTimer(self)方法。

相关问题