我正在尝试创建一个允许您从日历中选择日期的GUI。我制作了一个按钮的“日历”,根据当前月份对齐。我希望能够将回调设置为每个按钮以返回它们的特定数据,这就像它们显示的那天一样简单......但是由于按钮是在生成器中创建的,因此用于创建的整数它们是短暂的......
下面的代码,回调函数只返回相同的数字。使用Python 3.3。
import datetime
from tkinter import *
import calendar
today = datetime.date.today()
calendar.setfirstweekday(6)
GUI = Tk()
monthChoiceContainer = Frame(GUI)
monthChoiceContainer.pack()
monthChoice = Label(monthChoiceContainer, text=today.strftime("%B"))
monthChoice.grid(row=0, column=1)
calendarContainer = Frame(GUI)
calendarContainer.pack()
def callback(data):
print(data)
dayButton = { }
dayLabel = { }
cnth = 0
for items in calendar.weekheader(2).split(" "):
dayLabel[cnth] = Label(calendarContainer, text=items)
dayLabel[cnth].grid(row=0, column=cnth)
cnth+=1
cnth = 0
for lists in calendar.monthcalendar(today.year, today.month):
for items in lists:
if items !=0:
dayButton[cnth] = Button(calendarContainer, text=str(items), width=2,
command=lambda: callback(cnth))
dayButton[cnth].grid(row=cnth//7+1, column=cnth%7)
cnth+=1
GUI.mainloop()
我有没有办法让回调函数返回与每个按钮相关的单个数据?