tkinter创建Combobox联动

流程如下:
1.构造列表之间的映射关系
2.定义对第一个列表产生触发事件后,第二个列表得到的结果
3.绑定事件
下面是简单的月份对日期的联动效果(不考虑闰年),可以参考

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("test")


#构造月份对日期列表的映射
days31 = list(range(1,32))
days30 = list(range(1,31))
days28 = list(range(1,29))

month_dict = {"1":days31,"2":days28,"3":days31,"4":days30,"5":days31,"6":days30,"7":days31,"8":days31,"9":days30,"10":days31,"11":days30,"12":days31}
month_keys = list(month_dict.keys())

#构造两个combobox
month = tk.StringVar()
monthbox = ttk.Combobox(root,width = 5,textvariable = month,state = "readonly")
monthbox["values"] = month_keys
monthbox.grid(row = 0,column = 0)
monthbox.current(0)

tk.Label(root,text = "月").grid(row = 0,column = 1)

day = tk.StringVar()
daybox = ttk.Combobox(root,width = 5,textvariable = day,state = "readonly")
daybox["values"] = month_dict[month.get()]
daybox.grid(row = 0,column = 2)
daybox.current(0)

tk.Label(root,text = "日").grid(row = 0,column = 3)

#触发事件
def mFunc(event):
    day_list = month_dict[month.get()]
    daybox["values"] = day_list

#绑定事件  
monthbox.bind("<<ComboboxSelected>>",mFunc)

root.mainloop()
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值