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

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2016-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

为什么这么多人学不会C语言?

很多人觉得用C语言作为入门语言觉得太难了,里面还有指针,回调,递归之类的操作太难了。为什么这么多人觉得C语言难?笔者根据从业十几年的经验尝试着分析一下。 ? 第...

42060
来自专栏斑斓

一个完整的TDD演练案例(一)

实现猜数字的游戏。游戏有四个格子,每个格子有一个0到9的数字,任意两个格子的数字都不一样。你有6次猜测的机会,如果猜对则获胜,否则失败。每次猜测时需依序输入4个...

22130
来自专栏C语言C++游戏编程

零基础究竟怎样才可以学好C语言?多年开发老司机告诉你答案!

看到这,你也许有疑问:C语言功能强大,运行这么简单的一个程序就算入门了,没这么简单吧?

14600
来自专栏云飞学编程

Python的面向过程、面向函数、面向对象的区别浅谈

有人之前私信问我,python编程有面向过程、面向函数、面向对象三种,那么他们区别在哪呢?这个问题,让我想起我在学习编程的时候,我的老师给我举的例子。分享给大家...

17120
来自专栏Crossin的编程教室

【Python 第35课】 continue

break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。 在我们前面写的那个统计分数的程序里,如果发现有成绩不足60分,...

33360
来自专栏java达人

软件构建中的设计

设计中的挑战 1、设计是一个险恶的问题:只有通过解决或部分解决才能被明确的问题 (Tacoma Narrows大桥,空气动力学) ? 2、设计是一个了无...

20370
来自专栏Java学习网

编程的智慧特点

  编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋...

34160
来自专栏申龙斌的程序人生

零基础学编程026:学什么编程语言最有前途?

(封面图来自于网络) 想学习编程的朋友可能一直纠结于到底学哪一种编程语言最有前途,我google了一下,在维基百科的下面这个页面里大概有500多种编程语言,这些...

36980
来自专栏java学习

java每日一练(2017/8/9)

最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习...

29280
来自专栏Java学习网

你的代码糟粕比精华要多得多

你的代码糟粕比精华要多得多 新的研究发现,一个程序的核心功能仅在于一小部分封装的代码。 如果你是一个软件开发人员,有人问你,你写的代码中有多少是真正在实现实际...

27350

扫码关注云+社区

领取腾讯云代金券