У меня есть тест реакции, работающий в консоли, но мне было любопытно сделать из него настольное приложение, поэтому я решил проверить Tkinter, но у меня есть некоторые проблемы с преобразованием и функциональностью. Во-первых, для обратного отсчета Tkinter может перезаписывать строки для создания эффекта обратного отсчета (3,2,1,GO). Во-вторых, я не уверен, как сделать переменную «начало» плавающей, чтобы ее можно было вычесть, чтобы получить значение для переменной «истекшее время». Я чувствую, что я действительно близко. Просто чего-то не хватает.
from tkinter import*
from tkinter import ttk
import time, random
root = Tk()
content = ttk.Frame(root, padding=(3,3,12,12), width=500, height=100)
def callback():
elapsed = time.time()- start
print(elapsed)
result.set(elapsed)
result = StringVar()
def countdown():
time.sleep(random.randint(2,6))
d = '!__GO__!'
cd.set(d)
start = time.time()
start.set(start)
start = StringVar()
cd = StringVar()
ttk.Button(content, text="Start", command=countdown).grid(column=1, row=1, sticky=NW)
ttk.Label(content, text="Click on GO!").grid(column=2, row=1, sticky=N)
ttk.Button(content, text="Go", command = callback).grid(column=2, row=2, sticky=N)
ttk.Label(content, text="Result is: ").grid(column=2, row=3, sticky=(E,W))
ttk.Label(content, textvariable=cd).grid(column=2, row=4, sticky=S)
ttk.Label(content, textvariable=result).grid(column=3, row=3, sticky=S)
Я бы хотел, чтобы обратный отсчет отображал 3, затем 2, чтобы перезаписать его, затем 1, затем GO. А затем для отображения прошедшего времени с момента нажатия кнопки «Пуск» и нажатия кнопки «Перейти» (т.е. истекшее = время.время () - начало)