描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302530640
本书主要讲解如何在窗口内使用Python的内部模块tkinter设计图形用户接口(GUI)程序,使
用户可以利用图形接口与计算机沟通。tkinter模块是一个跨平台的窗口应用程序,使用它设计的
程序未来可以在Windows、Mac、Linux系统上执行。
Python的tkinter模块内部有许多Widget(可以翻译为控件或组件或部件),有了这些Widget
就可以设计出所有与图形接口相关的程序应用。本书介绍的tkinter模块Widget包括Button(按
钮)、Canvas(画布)、Checkbutton(选项钮)、Entry(文本框)、Frame(框架)、Label(卷标)、
LabelFrame(卷标框架)、Listbox(窗体)、Menu(菜单)、MenuButton(单选按钮)、Message(信息)、
OptionMenu(下拉式窗体)、PanedWindow(面板)、RadioButton(选项钮)、Scale(滚动条值控制)、
Scrollbar(滚动条)、Spinbox(可微调输入控件)、Text(文字区域)、TopLevel(上层窗口)。
此外,本书还介绍了与tkinter模块设计应用有关的变量类别(Variable Classes)与事件绑定
(Events and Binds)概念。
为了详细讲解GUI设计,本书共使用了约270个程序实例,详细解析各种Widget的用法,
同时也将应用扩充到设计文字编辑程序、计算器、动画与相关的游戏设计中。相信读者学完本书
可以轻松将GUI知识应用到未来职场,成为一位称职的软件工程师,并成为Python领域的高手。
第 1章 基本概念
1-1 认识GUI和tkinter ……………….. 2
1-2 建立窗口 …………………………….. 3
1-3 窗口属性的设置 ……………………. 3
1-4 窗口位置的设置 …………………….. 5
1-5 认识tkinter的Widget ……………. 7
1-5-1 tkinter 的 Widget ……………………….. 7
1-5-2 加强版的 tkinter 模块 ………………… 8
1-6 Widget的共同属性………………… 9
1-7 Widget的共同方法 ………………… 9
第 2章 标签Label
2-1 标签Label的基本应用 ………….. 12
2-2 Widget共同属性Color …………. 14
2-3 Widget的共同属性Dimensions …. 15
2-4 Widget的共同属性Anchor ……. 15
2-5 Label文字输出换行位置
wraplength ……………………….. 17
2-6 Widget的共同属性Font ……….. 17
2-7 Label的justify参数 …………….. 18
2-8 Widget的共同属性
Bitmaps …………………………… 20
2-9 compound参数 ………………….. 20
2-10 Widget的共同属性relief …….. 22
2-11 标签文字与标签区间的间距
padx/pady ………………………. 22
2-12 图像PhotoImage ……………… 23
2-13 Widget的共同方法
config( ) …………………………. 27
2-14 Widget的共同属性
Cursors …………………………. 28
2-15 Widget的共同方法keys( ) …… 29
2-16 分隔线Separator ……………… 30
第 3章 窗口控件配置管理员
3-1 Widget Layout Manager ……… 33
3-2 pack方法 …………………………. 33
3-2-1 side 参数 ………………………………… 33
3-2-2 padx/pady 参数 ……………………….. 37
3-2-3 ipadx/ipady 参数 ……………………… 40
3-2-4 anchor 参数 …………………………….. 41
3-2-5 fi ll 参数 ………………………………….. 42
3-2-6 expand 参数 ……………………………. 45
3-2-7 pack 的方法 ……………………………. 47
3-3 grid方法 …………………………… 48
3-3-1 row 和 column …………………………. 48
3-3-2 columnspan 参数 ……………………… 50
3-3-3 rowspan 参数 ………………………….. 51
3-3-4 padx 和 pady 参数……………………. 52
3-3-5 sticky 参数 ……………………………… 53
3-3-6 grid 方法的应用 ………………………. 55
3-3-7 rowconfi gure( ) 和
columnconfi gure( ) ……………………. 56
3-4 place方法 ………………………… 58
3-4-1 x/y 参数 ………………………………….. 58
3-4-2 width/height 参数 …………………….. 59
3-4-3 relx/rely 参数与 relwidth/relheight
参数 ………………………………………. 60
3-5 Widget控件位置总结 …………… 62
第 4章 功能按钮Button
4-1 功能按钮基本概念 ………………… 64
4-2 使用Lambda表达式 ……………. 68
4-3 建立含图像的功能按钮 ………….. 69
4-4 简易计算器按钮布局的应用 …….. 70
4-5 设计鼠标光标在功能
按钮上的形状 …………………….. 72
Python GUI 设计—tkinter菜鸟编程
IV
第 5章 文本框Entry
5-1 文本框Entry的基本概念 ……….. 74
5-2 使用show参数隐藏输入的字符 … 75
5-3 Entry的get( )方法 ……………… 77
5-4 Entry的insert( )方法 ………….. 79
5-5 Entry的delete( )方法 …………. 80
5-6 计算数学表达式使用eval( ) ……. 81
第 6章 变量类别
6-1 变量类别的基本概念 …………….. 84
6-2 get( )与set( ) ……………………. 84
6-3 追踪trace( )使用模式w ……….. 86
6-4 追踪trace( )使用模式r ………… 88
6-5 trace( )方法调用的
callback方法参数 ……………….. 89
6-6 计算器的设计 ……………………… 90
第 7章 选项按钮与复选框
7-1 Radiobutton选项按钮 ………….. 94
7-1-1 选项按钮的基本概念 ………………. 94
7-1-2 将字典应用在选项按钮上 ………… 97
7-1-3 盒子选项按钮 …………………………. 98
7-1-4 建立含图像的选项按钮 …………… 99
7-2 Checkbutton复选框 ………….. 101
7-2-1 复选框的基本概念 ………………… 101
7-3 简单编辑程序的应用 …………… 105
第 8章 容器控件
8-1 框架Frame ……………………… 108
8-1-1 框架的基本概念 ……………………. 108
8-1-2 在框架内创建 Widget
控件 …………………………………….. 110
8-1-3 活用 relief 属性……………………… 110
8-1-4 在含 raised 属性的框架内
创建复选框 …………………………….111
8-1-5 额外对 relief 属性的支持 ……….. 112
8-2 标签框架LabelFrame ………… 113
8-2-1 标签框架的基本概念 …………….. 113
8-2-2 将标签框架应用于复选框 ……… 115
8-3 顶层窗口Toplevel …………….. 116
8-3-1 Toplevel 窗口的基本概念……….. 116
8-3-2 使用 Toplevel 窗口仿真对话框 …. 117
第 9章 与数字有关的Widget
9-1 Scale的数值输入控制 ………… 120
9-1-1 Scale 的基本概念 ………………….. 120
9-1-2 取得与设置 Scale 的尺度值 ……. 122
9-1-3 使用 Scale 设置窗口背景颜色 …..123
9-1-4 askcolor( ) 方法 ……………………… 125
9-1-5 容器的应用 …………………………… 126
9-2 Spinbox控件 …………………… 127
9-2-1 Spinbox 控件基本概念 …………… 127
9-2-2 get( ) 方法的应用 ………………….. 129
9-2-3 以序列存储 Spinbox 的数值
数据 …………………………………….. 130
9-2-4 非数值数据 …………………………… 131
第 10章 Message与Messagebox
10-1 Message ………………………. 133
10-1-1 Message 的基本概念 ……………. 133
10-1-2 使用字符串变量处理 text
参数 …………………………………… 134
10-2 Messagebox …………………. 135
第 11章 事件和绑定
11-1 Widget的command
参数 …………………………….. 141
11-2 事件绑定 ……………………….. 142
11-2-1 鼠标绑定的基本应用……………. 145
11-2-2 键盘绑定的基本应用……………. 147
11-2-3 键盘与鼠标事件绑定的陷阱 …… 148
11-3 取消绑定 ……………………….. 149
11-4 一个事件绑定多个事件处理
程序 …………………………….. 151
11-5 Protocols ……………………… 152
第 12章 列表框Listbox与滚动条
Scrollbar
12-1 建立列表框 …………………….. 154
12-2 建立列表框项目insert( ) ……. 155
12-3 Listbox的基本操作 ………….. 159
12-3-1 列出列表框的选项数量
size( ) …………………………………. 159
目录
V
12-3-2 选取特定索引项 selection_
set( ) …………………………………… 160
12-3-3 删除特定索引项 delete( ) ……… 161
12-3-4 传回指定的索引项 get( ) ………. 163
12-3-5 传回所选取项目的索引
curselection( ) ……………………… 164
12-3-6 检查指定索引项是否被选取
selection_includes( ) …………….. 165
12-4 Listbox与事件绑定 ………….. 165
12-4-1 虚拟绑定应用于单选 …………… 165
12-4-2 虚拟绑定应用于多选 …………… 167
12-5 活用加入和删除项目 ………….. 168
12-6 Listbox项目的排序 ………….. 170
12-7 拖曳Listbox中的项目……….. 171
12-8 滚动条的设计 ………………….. 173
第 13章 OptionMenu与Combobox
13-1 下拉式列表OptionMenu ……. 177
13-1-1 建立基本的 OptionMenu ………. 177
13-1-2 使用元组建立列表项目………… 178
13-1-3 建立默认选项 set( ) ……………… 178
13-1-4 获得选项内容 get( ) ……………… 179
13-2 组合框Combobox …………… 180
13-2-1 建立 Combobox …………………… 180
13-2-2 设置默认选项 current( ) ……….. 181
13-2-3 获得目前选项 get( ) ……………… 182
13-2-4 绑定 Combobox …………………… 183
第 14章 容器PanedWindow和
Notebook
14-1 PanedWindow ……………….. 186
14-1-1 PanedWindow 基本概念 ……….. 186
14-1-2 插入子控件 add( ) ………………… 186
14-1-3 建立 LabelFrame 当作子对象 .. 187
14-1-4 tkinter.ttk 模块的 weight
参数 …………………………………… 188
14-1-5 在 PanedWindow 内插入不同
控件 …………………………………… 190
14-2 Notebook ……………………… 191
14-2-1 Notebook 基本概念 ……………… 191
14-2-2 绑定选项卡与子控件内容 …….. 192
第 15章 进度条Progressbar
15-1 Progressbar的基本应用 …… 195
15-2 Progressbar动画设计 ……… 196
15-3 Progressbar的方法start( )/
step( )/stop( ) ………………… 198
15-4 indeterminate模式 ………….. 200
第 16章 菜单Menu和工具栏
Toolbars
16-1 菜单Menu设计的基本概念 ….. 202
16-2 tearoff参数 ……………………. 204
16-3 菜单列表间加上分隔线 ………. 205
16-4 建立多个菜单的应用………….. 206
16-5 Alt快捷键 ………………………. 208
16-6 Ctrl 快捷键 …………………… 210
16-7 创建子菜单 …………………….. 211
16-8 建立弹出式菜单 ……………….. 212
16-9 add_checkbutton( ) ………… 213
16-10 创建工具栏Toolbar ………… 215
第 17章 文字区域Text
17-1 文字区域Text的基本概念 ….. 218
17-2 插入文字insert( ) …………….. 220
17-3 Text加上滚动条Scrollbar
设计 …………………………….. 221
17-4 字形 …………………………….. 224
17-4-1 family …………………………………. 224
17-4-2 weight …………………………………. 225
17-4-3 size …………………………………….. 227
17-5 选取文字 ……………………….. 228
17-6 认识Text的索引 ……………… 229
17-7 建立书签 ……………………….. 232
17-8 标签 …………………………….. 233
17-9 Cut/Copy/Paste功能 ……….. 236
17-10 复原与重复 …………………… 239
17-11 查找文字 ……………………… 241
17-12 拼写检查 ……………………… 243
Python GUI 设计—tkinter菜鸟编程
VI
17-13 存储Text控件内容 …………. 244
17-14 新建文档 ……………………… 248
17-15 打开文档 ……………………… 249
17-16 默认含滚动条的ScrolledText
控 件 ……………………………. 251
17-17 插入图像 ……………………… 252
第 18章 Treeview
18-1 Treeview的基本概念 ……….. 254
18-2 格式化Treeview栏位内容 …. 258
18-3 建立不同颜色的行内容 ………. 260
18-4 建立层级式的Treeview …….. 262
18-5 插入图像 ……………………….. 263
18-6 Selection选项发生与事件
触发 …………………………….. 264
18-7 删除项目 ……………………….. 266
18-8 插入项目 ……………………….. 267
18-9 双击某个项目 ………………….. 270
18-10 Treeview绑定滚动条 ……… 271
18-11 排序……………………………. 272
第 19章 Canvas
19-1 绘图功能 ……………………….. 277
19-1-1 建立画布 …………………………….. 277
19-1-2 绘制线条 create_line( ) …………. 277
19-1-3 绘制矩形
create_rectangle( ) ………………… 281
19-1-4 绘制圆弧 create_arc( ) ………….. 282
19-1-5 绘制圆或椭圆
create_oval( ) ………………………. 284
19-1-6 绘制多边形 create_polygon( ) ….285
19-1-7 输出文字 create_text( ) …………. 286
19-1-8 更改画布背景颜色 ………………. 286
19-1-9 插入图像 create_image( ) ……… 287
19-2 鼠标拖曳绘制线条 …………….. 288
19-3 动画设计 ……………………….. 289
19-3-1 基本动画 …………………………….. 289
19-3-2 多个球移动的设计 ………………. 290
19-3-3 将随机数应用于多个球体的
移动 …………………………………… 291
19-3-4 消息绑定 …………………………….. 292
19-4 反弹球游戏设计 ……………….. 293
19-4-1 设计球往下移动 ………………….. 293
19-4-2 设计让球上下反弹 ………………. 295
19-4-3 设计让球在画布四面反弹 …….. 296
19-4-4 建立球拍 …………………………….. 297
19-4-5 设计球拍移动 ……………………… 298
19-4-6 球拍与球碰撞的处理 …………… 299
19-4-7 完整的游戏 …………………………. 301
附录 A RGB色彩表 ………………..304
附录 B 函数或方法索引表 …………310
本书是一本使用 tkinter 进行 Python GUI 设计的中文图书。
作者在 2017 年 12 月出版了《Python 入门迈向高手之路王者归来》。该书从上市到
现在,连续几个月皆是台湾地区 Python 领域最畅销的书籍。该书约 820 页,虽然是目前
Python 图书讲解内容较丰富、应用较广泛的图书,但受限于篇幅,作者深知该书仍无法
涵盖所有 Python 的应用,特别是在 GUI 设计部分只是粗浅讲解。
在 Python 应用程序内附有 tkinter 模块。这个模块主要用于设计用户图形接口
(Graphical User Interface,GUI),也可以用于设计跨平台的窗口应用程序。程序设计人
员可以使用此模块的控件 (Widget) 设计图形接口让用户与计算机沟通。tkinter 模块简单
好用,但是目前却少有书籍对这个模块做过完整的功能介绍,这也是作者决定撰写本书
的动力。
本书基本上不对 Python 语法进行介绍,所以读者需要有一定的 Python 知识基础才
适合阅读本书,如果没有 Python 基础,建议先阅读作者所著下列两本书之一,建立起完
整的 Python 知识框架。
《Python 零基础最强入门之路王者归来 》
《Python 入门迈向高手之路王者归来 》
本书将通过约 270 个程序实例讲解下列知识。
(1) Python tkinter Widget ;
(2) Python tkinter.ttk Widget ;
(3) Widget 常用属性 ;
(4) Widget 常用方法 ;
(5) 变量类别 ;
(6) 事件与绑定 ;
(7) 计算器设计 ;
Python GUI 设计—tkinter菜鸟编程
II
(8) 文本编辑程序设计 ;
(9) 动画游戏设计。
作者曾编写过许多计算机书籍。本书沿袭作者以往著作的特色,程序实例丰富,相
信读者只要遵循本书的学习路线,必定可以在最短时间内精通窗口程序设计。本书内容
虽力求完美,但是书中疏漏与不足之处在所难免,希望读者不吝指正。
容器控件
本章摘要
8-1 框架Frame
8-2 标签框架LabelFrame
8-3 顶层窗口Toplevel
执行结果
../../../Downloads/8-1-1.jpg
从上述实例应该了解,框架也是一个Widget控件,所以最后也需要使用控件配置
管理员包装与定位,此例中是使用pack( )。
程序实例ch8_1_1.py:在调用Frame构造方法时,省略父对象。
../../../Downloads/8-1-3.jpg
执行结果 与ch8_1.py相同。
程序实例ch8_2.py:使用横向配置方式(side=LEFT)重新设计ch8_1.py,同时让鼠标
光标在不同的框架上有不同的形状。
执行结果
../../../Downloads/8-2-4.jpg
../../../Downloads/8-3-4.jpg
程序实例ch8_4.py:建立三个框架,分别使用不同的relief属性。
../../../Downloads/8-4-5.jpg
执行结果
../../../Downloads/8-4-3.jpg
评论
还没有评论。