《Python编程 第四版》 -第8章 tkinter之旅:第一部分(上)

本章重点内容说明:

1、配置组件外观

2、顶层窗口

3、对话框

4、绑定事件

 

接下来针对以上内容展开详细说明:

1、配置组件外观

首先让我们来看一段完整的代码:

 

 让我们来运行这段代码,看一下结果:

 

颜色:可以通过标签组件的bg选项把标签的北京设置为黑色,类似的,fg选贤能够将组件中(文本)的前景设为黄色

大小:通过设置高度啊和宽度属性

字体:通过把标签的font属性设为一个三元组(字体系列、大小、类型),指定来标签文本的自定义字体属性,上面代码中设置的是Time字体、20点、粗体

布局和扩展:通过设置pack中的expand和fill选项进行扩展和拉伸

我们可以对于最开始的代码进行调整,可以看下颜色、大小、和字体的变化

调整后的源代码:

 

 运行源代码后的结果:

 

 对比最开始看到的代码,就可以看到调整的地方,对显示的变化

除了上面介绍的可以调整的内容外,其实还有很多其他可调整的属性

边框和浮凸:通过relief属性来调整,relief=RAISED(凸起)

光标:cursor选项能够改变当鼠标经过组件时的鼠标指针的外观

留白:很多组件周炜都可以添加额外的空间,可以通过padx=N和pady=N选项来实现

针对上面提到的功能,我们可以通过源代码来看下:

 

 针对以上源代码,运行结果如下:

 

 2、顶层窗口

首先来看一个多个窗口的源代码:

 

 运行结果:会出现三个窗口

 

 三个窗口是彼此独立活动的:如果仅仅放到或者关闭一个窗口,其他窗口都不会有影响

但是三个窗口不是单独的进程,是彼此影响的,如果点击“SPAM”或者“Spam”或者最右边主窗口的“X”,三个窗口都会同时关闭

这里就是顶层窗口的逻辑

TK和Toplevel组件都会为顶层角色而导出其他的方法和功能

接下来,看一下下面的源代码:

 

 

 运行的结果如下:

 

 对于代码和运行结果进行说明的是:

1、其他三个带颜色字体的窗口,是子窗口,第一个窗口是主窗口,也就是顶层窗口

2、源代码中,子窗口的“关闭”按钮式已经失效的,如果你运行代码,可以自己试一下

3、点击主窗口的“Quit All”是可以关闭所有窗口的

 

3、对话框

 对话框是通过脚本弹出的窗口,想用户提供或要求额外的信息,

有两种类型:模态和非模态

模态:这种对话框会组织其他界面,指导对话框被关闭

非模态:这种对话框可以永久停留在屏幕上,而不会干扰界面中的其他窗口

标准(通用)对话框:

首先看一个源代码:

 

 运行该代码,结果如下:

 

 如果点击“Quit”,会弹出如下窗口:

 

 如果单击“是”,会弹出如下窗口:

 

 如果单击“否”,会弹出如下窗口:

 

 然后单击“确定”就会只剩下第一个主窗口,如果单击第一个窗口中的“Spam”,会弹出如下窗口:

 

 单击确定,就会关闭该窗口,但是原来的第一个窗口还是会存在的,点击窗口的右上角的关闭按钮,整个窗口关闭

从上面的整个来看,我们对窗口没有设置大小,但是窗口是自动弹出,而且这些弹出的窗口都是统一规范的

这类的窗口是在tkinter库里面的,是标准的对话框

这些标准的对话框,都是模态的,也就是说,需要用户对窗口做出反应,才能进行下一步的操作

上面是比较简单和标准的对话框,除了这些,还请其他更多形式的

看一下下面的源码:对话框演示启动栏

首先建立模块:quitter.py,源代码如下:

 

 其次,建立模块 dialogTable.py,源代码如下:

 

 将上面两个模块,导入使用,创建对话框示例,源代码如下:

 

 红色标注部分,就是导入使用的两个模块,运行该源代码,会得到如下窗口:

 

 针对上面展示的每一个按钮的功能,我们可以分开来看

第一个按钮:Open,点击该按钮,会出现选择电脑相关文件的窗口:

 

 第二个按钮:Color,点击该按钮,会出现演示选择窗口:

第三个按钮:Query,点击该按钮,会出现询问问题窗口:

第四个按钮:Imput,点击该按钮,会出现需要填写数据窗口:

第五个按钮:Quit,点击该按钮,就表示结束该窗口,全部关闭

如果想对操作的过程有了解,可以调整源代码,以便显示打印出操作的过程,如下:

 

 让用户选择窗口的颜色:

首先看下源代码及运行结果:

 

 自定义对话框

首先看下源码及运行结果:

 

 点击popup就会弹出右边的窗口,然后单击OK,就会关闭

4、绑定事件

绑定事件的操作,是通过bind组件的方法来实现的

看一个源代码:

 

 

 

 代码运行结果如下:

 

(未完待续)

 

posted @ 2020-11-30 23:57  诡刺-ThornSoul  阅读(125)  评论(0编辑  收藏  举报