Тема: вибір дати в календарі
може кому потрібно календарик з можливістю вибирати дату.
def data_select(entry_insert): # entry_insert=ttk.Entry поле на зовнішній формі
def constant_insert():
global date_data_select
a=datetime.datetime.now()
date_data_select=[a.day,a.month,a.year]
pole()
def back_button_select():
global date_data_select
date_data_select[1] = date_data_select[1] - 1
if date_data_select[1] == 0:
date_data_select[1] = 12
date_data_select[2] = date_data_select[2] - 1
text=str(date_data_select[0])+"-"+str(date_data_select[1])+"-"+str(date_data_select[2])
entry_insert.delete(0, END)
entry_insert.insert(0, text)
pole()
def next_button_select():
global date_data_select
date_data_select[1] = date_data_select[1] + 1
if date_data_select[1] == 13:
date_data_select[1] = 1
date_data_select[2] = date_data_select[2] + 1
text=str(date_data_select[0])+"-"+str(date_data_select[1])+"-"+str(date_data_select[2])
entry_insert.delete(0, END)
entry_insert.insert(0, text)
pole()
def pole():
global string_kalendar
string_kalendar=calendar.monthcalendar(date_data_select[2], date_data_select[1])
text=str(date_data_select[0])+" "+month[date_data_select[1]-1]+" "+str(date_data_select[2])
label1_win_data_select["text"] = text
month_dey = calendar.monthrange(date_data_select[2], date_data_select[1])[1]
week_dey = calendar.monthrange(date_data_select[2], date_data_select[1])[0]
for n in range(42): deys[n]["text"] = ""
for n in range(month_dey): deys[n + week_dey]["text"] = n + 1
def date_select(y,x):
global date_data_select
if y+1 <= len(string_kalendar) :
if string_kalendar[y][x] != 0 :
date_data_select[0] = string_kalendar[y][x]
text=str(date_data_select[0])+" "+month[date_data_select[1]-1]+" "+str(date_data_select[2])
label1_win_data_select["text"] = text
text=str(date_data_select[0])+"-"+str(date_data_select[1])+"-"+str(date_data_select[2])
entry_insert.delete(0, END)
entry_insert.insert(0, text)
dt = ['ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ', 'НД']
month = ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень']
win_data_select = Toplevel()
win_data_select.title("Дата") # Дата
win_data_select.grab_set()
deys = []
back_button=ttk.Button(win_data_select,text="<", width=4, command=back_button_select)
back_button.grid(row=0, column=0, sticky=NSEW)
label1_win_data_select = ttk.Label(win_data_select)
label1_win_data_select.grid(row=0, column=1, columnspan=5, sticky=NSEW)
next_button=ttk.Button(win_data_select,text=">", width=4, command=next_button_select)
next_button.grid(row=0, column=6, sticky=NSEW)
for d in range(7):
label2_win_data_select = ttk.Label(win_data_select,text=dt[d])
label2_win_data_select.grid(row=1, column=d, sticky=NSEW)
for row in range(6):
for col in range(7):
label3_win_data_select = ttk.Button(win_data_select, width=4, command= lambda x1=col, y1=row: date_select(y1,x1))
label3_win_data_select.grid(row=row+2, column=col, sticky=NSEW)
deys.append(label3_win_data_select)
constant_insert()