【发布时间】:2013-08-14 05:03:23
【问题描述】:
我用 wx.slider 和 wx.togglebutton 制作了一个 GUI。我的目标是将滑块用作情节的时间线,将切换按钮用作开始/停止按钮。我的想法是:当我按下切换按钮时,滑块值开始增加,当我再次按下切换按钮时它停止。我正在使用以下代码,我可以使滑块值增加,但是一旦它开始移动,我无法停止循环,直到它到达滑块的末尾。当我再次按下切换按钮时,有没有办法停止增加?
def m_toggleBtn1OnToggleButton( self, event ):
value = self.m_toggleBtn1.GetValue()
if value == True:
self.m_toggleBtn1.SetLabel("Pause")
for i in xrange(100):
if i == 100:
self.m_slider1.SetValue(100)
else:
self.m_slider1.SetValue(i)
time.sleep(0.1)
else:
self.m_toggleBtn1.SetLabel("Start")
slider_value = self.m_slider1.GetValue()
self.m_slider1.SetValue(slider_value)
感谢您的帮助。 亲切的问候 伊沃。
【问题讨论】:
-
好吧,正如所写,您只有一个执行线程,它正在执行
for i in xrange(100):循环。这不会是一个微不足道的更改,因为您必须使用线程,以便一个线程可以运行更新循环,而另一个线程可以用于侦听事件。我对 wx 不熟悉,所以不确定它会是什么样子,但可以尝试 stackoverflow.com/questions/13654559/… 和 wiki.wxpython.org/LongRunningTasks 作为起点。
标签: python wxpython togglebutton