перезапустите время после паузы - PullRequest
1 голос
/ 21 сентября 2019

Я пытаюсь сделать небольшой отсчет в tkinter (python), мне уже удается заставить это работать, но когда я делаю паузу, когда он запускается, он начинается с самого начала.

как сделать так, чтобы кнопка паузы продолжала отображать фактическое время после паузы?

спасибо

    def countdown(self):


    if self.state == True:

        if (self.mins == 0) and (self.secs == 0):
            self.display.config(text="Done!")
            self.state = False
        else:
            self.display.config(text="%02d:%02d" % (self.mins, self.secs))

            if self.secs == 0:
                self.mins -= 1
                self.secs = 59
            else:
                self.secs -= 1

            self.master.after(1000, self.countdown)

def start(self):
    if self.state == False:
        self.state = True
        self.mins = self.minutes
        self.secs = self.seconds
        self.countdown()

def pause(self):
    if self.state == True:
        self.state = False

1 Ответ

0 голосов
/ 22 сентября 2019
class Counter:
    def __init__(self, minutes, seconds):
        self.minutes = minutes
        self.seconds = seconds 
        self.state = False
    def countdown(self):
        if self.state == True:
            if (self.mins == 0) and (self.secs == 0):
                print("Done!")
                #self.display.config(text="Done!")
                #self.state = False
            else:
                #self.display.config(text="%02d:%02d" % (self.mins, self.secs))
                if self.secs == 0:
                    self.mins -= 1
                    self.secs = 59
                else:
                    self.secs -= 1
                #self.master.after(1000, self.countdown)
    def start(self):
        if self.state == False:
            self.state = True
            self.mins = self.minutes
            self.secs = self.seconds
            self.countdown()

    def pause(self):
        if self.state == True:
            self.state = False
            #Add these lines into your code#
            self.minutes = self.mins
            self.seconds = self.secs
obj1 = Counter(10,40)
obj1.start()
obj1.pause()
obj1.start()
print(obj1.minutes, obj1.seconds)

Я изменил ваш код для запуска на моем компьютере.Я добавил две строки в методе pause.Изменить: Исправлены ошибки отступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...