《Python编程 第四版》 -第9章 tkinter之旅:第二部分(上)
本章重点内容说明:
1、菜单
2、Listbox和Scrollbar
3、Text
4、Canvas
5、网格
6、时间工具、线程和动画
接下来针对以上内容展开详细说明:
1、菜单
所谓菜单,就是通常出现在窗口顶端,带有下拉式列表的部分,不同选择下面会有不同层级的选择
首先先看一个顶层窗口菜单的简单代码:
运行该代码,显示结果如下:
通过上面代码和运行的结果,可以看到,顶层窗口菜单的创建基本逻辑
1)创建顶层Menu作为窗口组件的子组件,并将窗口的Menu属性设置为新的Menu
2)对每个下拉式对象,创建一个新的Menu作为顶层Menu的子组件,并在add_cascade方法中将新的Menu设置为顶层Menu的下拉显示对象
3)为步骤2中创建的每个下拉Menu添加菜单选项,使用add_command方法的command选项来记录选择回调处理器
4)通过创建新的Menu作为子菜单,以及使用add_cascade方法链接相应父菜单和子菜单的方法,添加下拉式子菜单
对于代码中的几个函数或者处理的地方,说明如下:
分割线:
用add_separator方法在edit菜单中生成分割线
tearoff:是默认出现在菜单顶部的虚线,可以设置成显示或者不显示:
上面的方式是顶层窗口菜单方式,同样的窗口显示效果,可以通过基于Frame进行显示的菜单
他们两者最大不同就是Frame使用了基于框架的方法
基于Frame和Menubutton的菜单,源码如下:
可以对比两者看下不同之处
同样的显示效果,基于框架的菜单,最大的有点是它可以作为大型界面的内嵌部件,
简单的来说就是可以作为一个模组,进行重复的利用,
就是上面的为例,如果创建过一次,可以重复利用,如下:
运行结果如下:
你会发现,一个窗口里面嵌入了两个菜单选项,这里嵌入的菜单选项就是之前我们创建的基于框架的菜单
使用Menubutton
实际上,基于Menubutton的菜单比起示例中显示的那样,应用还要广泛,他们可以出现在任何按钮出现的地方,而非局限于菜单栏的Frame
看一个源码,如下:
代码运行结果如下:
点击food按钮会出现下拉菜单
2、Listbox和Scrollbar
Listbox组件允许你现实可选项目的列表,以方便选择
Scrollbar组件是为了便于浏览和导航其他组件的内容
首先看一个源码:
运行代码后的结果,如下:
简单的来说,左侧就是listbox组件,右侧就是Scrollbar组件,两者经常连在一起时间
这样的使用方式,也是我们经常看到的
对于Listbox组件部分的说明
代码中设定的选择方式是单选,可以进行调整,有多个选择项:
可以通过参数selectmode来调整,有四个选项:SINGLE、BROWSE、MULTIP和EXTENDD,前两个是单选,后两个是多选
对于Scrollbar的说明:
滚动条是和左侧的组件绑定在一起的,也就是两者一起滑动,绑定的相关代码:
从最后的结果看,滚动条是在右侧的垂直方向滚动,如果是想设定水平滚动条
其对应的参数是【xscrollcommand】,正好与此处的【yscrollcommand】对应
3、Text
首先看一个简单的Text组件的使用展示,代码如下:
代码运行结果如下:
(未完待续)