Как мы можем использовать запись для установки времени по таймеру? (Python, tkinter)

#python

#python

Вопрос:

Я начал кодировать всего несколько дней назад, поэтому я надеюсь, что вы сможете мне помочь 🙂 Я пытаюсь соединить запись с моим таймером. Таким образом, пользователь может выбрать, какое время он хочет установить. Они могут установить значение в минутах. Я уже получил его, чтобы получить значение записи в моем таймере, но таймер не запускается. Я использую tkinter для этого кода.

Поэтому, если пользователь введет, например, «3», мой таймер отобразит «03:00», но время не начнет работать. Консоль также не выводит ошибок. Вот мой код:

 from tkinter import *
from PIL import ImageTk, Image
import math

window = Tk()
window.title("u'Clock")
window.config(padx=50, pady=50, bg="#1a1c20", highlightthickness=0)

timer = None

def start_timer():
    count_down(0)


def get_time():
    time = input_time_do.get()
    int_time = int(time)
    return int_time


def count_down(count):
    count = get_time()
    count_min = count
    count_sec = count*60 % 60
    if count_min < 10:
        count_min = f"0{count_min}"
    if count_sec < 10:
        count_sec = f"0{count_sec}"

    canvas.itemconfig(timer_text, text=f"{count_min}:{count_sec}")
    if count > 0:
        global timer
    window.after(1000, count_down, count - 1)


input_time_do = Entry(width="20", background="DarkSeaGreen")
input_time_do.insert(END, string="Set Workout Time")

input_time_do.grid(column=1, row=2, padx=10, pady=10)

start_button = Button(text="START", command=start_timer)
start_button.grid(column=1, row=6, padx=10, pady=10)

canvas = Canvas(width=400, height=266, bg="#fbf7f0", highlightthickness=0)
gym_img = ImageTk.PhotoImage(Image.open("gym1.jpg"))  # PIL solution
canvas.create_image(200, 133, image=gym_img)
timer_text = canvas.create_text(200, 135, text="00:00", fill="#fbf7f0", font= 
("Roboto", 30))
canvas.grid(column=1, row=1)

window.mainloop()
 

Комментарии:

1. В вашем текущем коде вы передаете аргумент count , но первое, что вы делаете, это снова перезаписываете его get_time() значением. Таким образом, он перезагружает исходное значение. Я думаю, что если ваша start_timer функция вызывает count_down значение поля time, и вы удаляете этот get_time вызов из функции обратного отсчета, у вас может быть что-то, что работает.

2. Вы всегда устанавливаете время на одно и то же время. Сразу после того, как вы избавитесь от count = get_time() , вы поймете, что он начинает отсчет.

3. @CoolCloud Разве это не то, что я сказал в своем комментарии?

4. @RufusVS Конечно, я только что дал TD; DR