Я импортирую функцию с именем "select_date".Эта функция запускает приложение графического интерфейса (calendar-datepicker) и возвращает выбранный год, месяц и день (функция хорошо протестирована).Я хочу заполнить запись в tkinter выбранной датой.Когда я запускаю код, запись не заполняется.Однако, когда вместо использования функции select_date для получения даты мы используем определенное значение, например, date = "гггг / мм / дд" (закомментировано в коде), программа запускается, как ожидается, и запись заполняется "гггг / мм"/ дд».
import Tkinter as tk
from mycalendar import select_date
root = tk.Tk()
root.title("My App")
root.geometry("400x400")
w = tk.Label(root, text="Aerosol Optical Depth & Trends")
w.grid(column = 0, row = 100)
w.pack()
# ~ date="yyyy/mm/dd"
e = tk.Entry()
e.pack()
e.delete(0, tk.END)
year,month,day=select_date(myinput="From Date")
date=str(year)+'/'+str(month)+'/'+str(day)
e.insert(0, date)
root.mainloop()
Дата выбора указана в следующем коде:
try:
import tkinter as tk
from tkinter import ttk
except ImportError:
import Tkinter as tk
import ttk
import datetime
from tkcalendar import Calendar, DateEntry
import tkMessageBox
def select_date(myinput):
def example1():
def print_sel():
print(cal.selection_get())
global year
global month
global day
year=cal.selection_get().year
month=cal.selection_get().month
day=cal.selection_get().day
#~ tkMessageBox.askyesno("Date Select", cal.selection_get())
root.withdraw()
result = tkMessageBox.askyesno("Date Select", cal.selection_get())
if result == True:
root.destroy()
top = tk.Toplevel(root)
cal = Calendar(top, font="Arial 14", selectmode='day', locale='en_US',
cursor="hand1", year=datetime.date.today().year, month=datetime.date.today().month, day=datetime.date.today().day)
cal.pack(fill="both", expand=True)
ttk.Button(top, text="select", command=print_sel).pack()
root = tk.Tk()
ttk.Button(root, text=myinput, command=example1).pack(padx=10, pady=10)
root.mainloop()
return year,month,day