#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