[D]大侠请留步,wxpython:slider问题
想让这个slider从头滑到尾,代码如下,运行后:OnSlider()被调用多次,
添加了self.Destory()后界面也没有直接退出,请问代码是不是哪写错啦!!
import wximport timeclass SliderFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,'Slider example',size = (300,350)) panel = wx.Panel(self,-1) self.count = 0 self.slider = wx.Slider(panel,100,0,1,100,pos = (10,10),size = (250,-1), style = wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS) self.slider.SetTickFreq(10,1) self.Bind(wx.EVT_SLIDER,self.OnSlider,self.slider) def OnSlider(self,event): print 'a' for i in range(1,100): self.slider.SetValue(i) # print i time.sleep(0.1) self.Destroy() print 'b' if __name__ == "__main__": app = wx.PySimpleApp() frame = SliderFrame() frame.Show() app.MainLoop()
... self.Bind(wx.EVT_SLIDER,self.OnSlider,self.slider) self.timer = wx.CallLater(100, self.OnTimer) def OnSlider(self, event): if not self.timer.IsRunning(): self.timer.Start() def OnTimer(self): value = self.slider.GetValue() if value < self.slider.GetMax(): self.slider.SetValue(value+1) self.timer.Start()