The doubt was the following, I want to select a date using the tkcalendar
library, it is selected correctly, but I cannot use the variable outside the function.
def dateentry_view():
def print_sel():
date = cal.get_date()
print(date)
top = tk.Toplevel(root)
ttk.Label(top, text='Elige el día').pack()
cal = DateEntry(top)
cal.pack(padx=10, pady=10)
ttk.Button(top, text="Aceptar", command=print_sel).pack()
How can I pass the date
variable to display it in a Label
as follows:
labelDate = Label(root,textvariable=date)
I have tried to put the Label
inside the function, but it still doesn't show the date
variable.
def dateentry_view():
top = tk.Toplevel(root)
ttk.Label(top, text='Elige el día').pack()
cal = DateEntry(top)
cal.pack(padx=10, pady=10)
ttk.Button(top, text="Aceptar", command=print_sel).pack()
def print_sel():
date = cal.get_date()
print(date)
labelFecha = Label(root,textvariable=date)
When I print date
it shows me the date I have selected correctly.
From googling tk.Label
it looks like the idea of textvariable
is that it refers to a mutable tk.StringVar
, not a normal Python str
(which is immutable). Hence all you need to do is declare the StringVar
in the outer scope and then update it inside the callback:
date = tk.StringVar()
def set_date():
date.set(cal.get_date())
ttk.Button(top, text="Aceptar", command=set_date).pack()
labelFecha = Label(root, textvariable=date)