Tkinter OptionMenu仅显示单个日期选项的技术求助
问题出在你创建OptionMenu时的两个错误:
- 参数顺序错误,把选项值放在了
variable参数前面 - 仅传入了循环结束后最后一个日期的值,没有把所有7天日期作为选项传递
修正后的代码
from tkinter import * from datetime import datetime, timedelta master = Tk() # 生成7天日期并存入列表 date = datetime.now() date_options = [] for x in range(7): d = date - timedelta(days=x) date_str = d.strftime("%A %d/%m/%Y") date_options.append(date_str) print(date_str) # 创建OptionMenu并传入所有日期选项 variable = StringVar(master) variable.set("Select Date") # 默认值 # 正确参数顺序:master, variable, 所有选项(用*解包列表) w = OptionMenu(master, variable, *date_options) w.pack() mainloop()
关键说明
- 先通过循环将所有生成的日期字符串存入
date_options列表,确保保留全部7天的日期数据 - 创建OptionMenu时,必须遵循
master→variable→ 所有选项的参数顺序 - 使用
*date_options可以将列表中的每个元素作为单独参数传递给OptionMenu,这样下拉菜单就能显示所有7个日期选项
内容的提问来源于stack exchange,提问作者Gmoss2112
相关产品推荐
相关产品推荐

