Я хочу поиграть с T. Когда я начинаю, я хочу иметь 2 варианта остановки или паузы.когда я останавливаюсь, я должен перезапустить свой счетчик 0. Но когда я делаю паузу, я должен перезапустить и продолжить там, где я остановился.
import time
import sys
class ToggleButtonDemo(wx.Frame):
def __init__(self, parent):
super().__init__(parent)
self.panel = wx.Panel(self, -1)
self.startbutton = wx.ToggleButton(self.panel, -1, "Start")
self.stopbutton = wx.Button(self.panel, -1, "stop")
self.stopbutton.Disable()
self.startbutton.Bind(wx.EVT_TOGGLEBUTTON, self.onButton)
self.stopbutton.Bind(wx.EVT_BUTTON, self.onStop)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.startbutton)
vbox.Add(self.stopbutton)
#self.keepGoing = False
self.panel.SetSizer(vbox)
self.Show()
self.etat = True
self.stop_thread = False
def activity(self):
while self.stop_thread == True:
for i in range(5):
print (i)
time.sleep(1)
if self.stop_thread == False:
#stop
return self.stop_thread
if self.etat == False:
print("Pause")
break
self.startbutton.SetLabel("start")
self.stopbutton.SetLabel("stop")
self.stopbutton.Disable()
if self.etat == True:
self.startbutton.SetValue(False)
else:
self.startbutton.SetValue(True)
return self.stop_thread
def onButton(self, event):
self.etat = self.startbutton.GetValue()
if self.etat == True:
self.stop_thread = True
import threading
self.t = threading.Thread(target = self.activity)
self.t.start()
event.GetEventObject().SetLabel("Pause")
self.stopbutton.Enable()
if self.etat == False:
self.etat = False
#Pause code
event.GetEventObject().SetLabel("Start")
self.stopbutton.Disable()
def onStop(self, event):
self.stop_thread = False
self.startbutton.SetLabel("Start")
self.stopbutton.Disable()
self.startbutton.SetValue(False)
app = wx.App()
prog = ToggleButtonDemo(None)
app.MainLoop()
функция остановки уже работает, мне нужно сделать паузу