《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组件的使用展示,代码如下:

 

 

 

 代码运行结果如下:

 

 

(未完待续)

posted @ 2020-12-31 23:57  诡刺-ThornSoul  阅读(95)  评论(0编辑  收藏  举报