Python+tkinter实现任意多层级关系的组合框

正好自己要用,就想了个简单思路实现了一下,假设现在需要一个组合框来显示多个层级关系的单位名称供用户选择,如果只有固定的两级关系当然可以使用两个组合框联动来实现,但是如果层级关系不确定,下面的方法就很有用了。

import tkinter

import tkinter.ttk

testData = {'01':'学校一',

            '02':'学校二',

            '03':'学校三',

            '0101':'学校一年级一',

            '010101':'学校一年级一班级一',

            '0102':'学校一年级二'}

#按单位编码进行排序

data = sorted(testData.items(), key=lambda x: x[0])

#编码越长,表示单位名称越小,嵌套关系越深

#编码长的单位名称前面加的空格也多

data = [(len(item[0])-2)*2*' '+item[1] for item in data]

root = tkinter.Tk()

root.title('NestedRelation_Combobox')

root['height'] = 200

root['width'] = 320

comboSchool = tkinter.ttk.Combobox(root, values = data, width=160)

comboSchool.place(x=10, y=10, width=160, height=20)

root.mainloop()

运行效果如下图所示:


温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值