cnv = tk.Canvas(root, ...)
cnv.pack(side="top", fill="both")
ent = tk.Entry(root, ...)
ent.pack(side="top", fill="x")
btn = tk.Button(root, ...)
btn.pack(side="top")
import tkinter as tk
root = tk.Tk() #необходимо, без рута переменные работать не будут
v = tk.DoubleVar()
v.set(3.1415926) #задаём значение
print(v.get()) #читаем значение
# чтобы связать переменную с Entry, указываешь её как параметр textvariable=v
#как отслеживать изменения самому:
def v_changed(*args):
print('v is now:', v.get())
trace_id = v.trace('w', v_changed) #trace_id нужно, если потом захочешь отписаться
v.set(42) #вызовет v_changed и выведет в консоль v is now: 42.0
v.trace_remove('write', trace_id) #отписываемся, когда больше не хотим её отслеживать.
Функция time.time() возвращает число секунд с начала эпохи (полночь 1 января 1970). Т.е. вычтя два значения, возвращённых этой функцией в разное время, можно узнать, сколько секунд (и долей секунды) прошло между ними.
В базе данных создаёшь таблицу со столбцами ID пользователя (INT) и метка времени (REAL). В неё и сохраняешь время последнего выполнения команды.
При проверке - делаешь SELECT для данного ID пользователя и извлекаешь значение метки времени. Если оно нашлось - вычитаешь его из текущего значения time.time(). Если разность более 24 часов (выраженных в секундах) - можно выполнять команду снова.