Как добавить значение в Label?

Рейтинг: 1Ответов: 1Опубликовано: 07.04.2023

Программа вычисляет кол-во дней до конца учебного года, вопрос, как сделать 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()

Ответы

▲ 2Принят
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()

Ошибки:

  1. Расчёт остатка должен выполняться внутри функции clicked() так как происходит после клика.
  2. Вы забыли упаковать создаваемые виджеты в окно
  3. В результате выполнения вычитания двух дат получается объект класса timedelta у которого уже есть поле days - ничего делать не нужно.