したがって、私が現在抱えている問題は、ユーザーが最初に選択したものに基づいて、2 番目のオプション メニューを更新したいということです。ここでラムダ関数を使用して、フレームが更新されるようにする必要があると思いますが、これを正確に行う方法がわかりません。これまでの私のコードは次のとおりです。
from tkinter import *
import time
class CustomerEntryForm(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("Customer Entry form:")
self.pack()
execute = True
thirtyMonthList = [4,6,9,11]
thirtyOneMonthList = [1,2,6,7,8,10,12]
monthList = []
dayList = []
for i in range(1,13):
monthList.append(i)
initialMonth = IntVar(self)
initialMonth.set(monthList[0])
initialDay = IntVar(self)
def resetDayOptionMenu():
for i in range(1,len(dayList)+1):
dayList.remove(i)
def setDayList():
resetDayOptionMenu()
if initialMonth.get() == 2:
for i in range(1, 29):
dayList.append(i)
initialDay.set(dayList[0])
elif initialMonth.get() in thirtyMonthList:
for i in range(1, 31):
dayList.append(i)
initialDay.set(dayList[0])
elif initialMonth.get() in thirtyOneMonthList:
for i in range(1, 32):
dayList.append(i)
initialDay.set(dayList[0])
self.om2 = OptionMenu(self, initialMonth, *monthList, command = setDayList())
self.om2.grid(row=0)
self.om = OptionMenu(self, initialDay, *dayList)
self.om.grid(row=1)
root = CustomerEntryForm()
root.mainloop()
助けていただければ幸いです。ありがとう。