Как добавить значение в Label?
Программа вычисляет кол-во дней до конца учебного года, вопрос, как сделать GUI и в лейбл записывать значение остатка дней?
import datetime
import tkinter as tk
win = tk.Tk()
def clicked():
lbl.configure(text = "до конца
осталось:")
lbl = Label(win, text= 'дата гггг-
мм-дд')
btn = Button(win, text =
"Ввчислить",command = clicked)
txt = Entry(win, width = 10)
a = txt.get()
a = a.split('-')
aa = datetime.date(int(a[0]),int(a[1]),int(
a[2]))
bb = datetime.date.today()
cc = aa-bb
dd = str(cc)
win.mainloop()
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
import datetime
import tkinter as tk
def clicked():
a = txt.get()
a = a.split('-')
aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
bb = datetime.date.today()
cc = aa-bb
dd = cc.days
lbl.configure(text = f"до конца осталось {dd} дней")
win = tk.Tk()
lbl = tk.Label(win, text= 'Дата окончания семестра: гггг-мм-дд')
lbl.pack()
btn = tk.Button(win, text = "Вычислить",command = clicked)
btn.pack()
txt = tk.Entry(win, width = 10)
txt.pack()
win.mainloop()
Ошибки:
- Расчёт остатка должен выполняться внутри функции clicked() так как происходит после клика.
- Вы забыли упаковать создаваемые виджеты в окно
- В результате выполнения вычитания двух дат получается объект класса timedelta у которого уже есть поле days - ничего делать не нужно.