@Program_Danil

Где проблема в коде?

Здравствуйте. Делаю секундомер на python с помощью библиотеки tkinter. Скажите кто знает почему 1 код с отформатированной строкой не работает, а 2 код без форматирования работает?

Код 1:
from tkinter import *
from datetime import datetime

temp = 0
after_id = ''

def tick():
	global temp, after_id
	after_id = root.after(1000, tick)
	f_temp = datetime.fromtimestamp(temp).strftime("%M:%S")
	label1.configure(text=str(f_temp))
	temp += 1

def start_sw():
	btn1.grid_forget()
	btn2.grid(row=1, columnspan=2, sticky='ew')
	tick()

root = Tk()

root.title("Stopwatch")

label1 = Label(root, width=5, font=("Ubuntu", 100), text="00:00")
label1.grid(row=0, columnspan=2)

btn1 = Button(root, text="Start", font=("Ubuntu", 30),command=start_sw)
btn2 = Button(root, text="Stop", font=("Ubuntu", 30))
btn3 = Button(root, text="Continue", font=("Ubuntu", 30))
btn4 = Button(root, text="Reset", font=("Ubuntu", 30))

btn1.grid(row=1, columnspan=2, sticky="ew")

root.mainloop()

Код 2:
from tkinter import *
from datetime import datetime

temp = 0
after_id = ''

def tick():
	global temp, after_id
	after_id = root.after(1000, tick)
	label1.configure(text=str(temp))
	temp += 1

def start_sw():
	btn1.grid_forget()
	btn2.grid(row=1, columnspan=2, sticky='ew')
	tick()

root = Tk()

root.title("Stopwatch")

label1 = Label(root, width=5, font=("Ubuntu", 100), text="00:00")
label1.grid(row=0, columnspan=2)

btn1 = Button(root, text="Start", font=("Ubuntu", 30),command=start_sw)
btn2 = Button(root, text="Stop", font=("Ubuntu", 30))
btn3 = Button(root, text="Continue", font=("Ubuntu", 30))
btn4 = Button(root, text="Reset", font=("Ubuntu", 30))

btn1.grid(row=1, columnspan=2, sticky="ew")

root.mainloop()

Разница в кодов происходит на 10-11 строках в функции tick()
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from datetime import timedelta

f_temp = str(timedelta(seconds=temp))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы