내가 할 것이라고 생각 빠른 스크립트를 작성
당신이 원하는 :
import wx
########################################################################
class MyPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
self.slider_value = 1
self.slider = wx.Slider(self, value=1, minValue=0, maxValue=100, size=(250, -1),
style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS)
self.slider.SetTickFreq(5, 1)
self.slider.Bind(wx.EVT_SCROLL, self.onScroll)
self.toggle = wx.ToggleButton(self, label="Start")
self.toggle.Bind(wx.EVT_TOGGLEBUTTON, self.onToggle)
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.onUpdate, self.timer)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.slider, 0, wx.ALL, 5)
sizer.Add(self.toggle, 0, wx.ALL, 5)
self.SetSizer(sizer)
#----------------------------------------------------------------------
def onScroll(self, event):
"""
Fires when you manually scroll the slider
"""
value = self.slider.GetValue()
self.slider_value = value
#----------------------------------------------------------------------
def onToggle(self, event):
"""
Start/Stop the slider incrementing
"""
value = self.toggle.GetValue()
if value:
self.toggle.SetLabel("Pause")
self.timer.Start(1000)
else:
self.timer.Stop()
self.toggle.SetLabel("Start")
#----------------------------------------------------------------------
def onUpdate(self, event):
"""
Increment the slider
"""
self.slider_value += 1
self.slider.SetValue(self.slider_value)
########################################################################
class MyFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Slider Test")
panel = MyPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
글쎄, 당신은 단지 하나의 실행 스레드를 가지고 있고, 그것은'for i in xrange (100) :'루프를하고있다. 하나의 스레드가 업데이트 루프를 실행하고 다른 스레드는 이벤트를 수신 할 수 있도록 스레드를 사용해야하므로 사소한 변경이되지는 않습니다. 나는 wx에 익숙하지 않아 어떤 모습 일지 모르지만 http://stackoverflow.com/questions/13654559/how-to-thread-wxpython-progress-bar?rq=1 및 http :// 시작 지점은 /wiki.wxpython.org/LongRunningTasks입니다. – AdamKG