《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组件的方法来实现的
看一个源代码:
代码运行结果如下:
(未完待续)