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

2016-08-13 董付国 Python小屋 Python小屋

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

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需要的知识!