第一部分:tkinter基础知识
第〇节:认识tkinter
- 在Python2.X中是Tkinter,在python3.X中是tkinter,两者区别较大,这里学习的都是python3.X里面的。
-
Tkinter自带的测试程序如下:
Import tkinter
Tkinter._test()
运行之后如下所示:
第一节:开始一个tkinter程序
- 如果不想在运行界面程序是后面还有一个控制台的窗口,可以把代码保存为.pyw,再使用pythonw.exe打开即可。
-
一个带标题的例子:
from tkinter import * # 导入tkinter模块
root = Tk() # 把类实例化
root.title('这是郭立鹏的第一个测试程序') # 修改标题
root.mainloop() # 循环
运行效果:
第二节:标签
-
增加一个标签
(1)代码示例:
from tkinter import *
root = Tk()
root.title('郭立鹏的tkinter笔记')
w1 = Label(root,text = '跟着鸟哥一起学习tkinter') # w1是Label的一个实例
w1.pack()
root.mainloop()
(2)运行结果:
(3)Label类的源代码
从中可以看出,Label类的标准属性有background,font,bitmap等等。
(4)pack方法,简单理解为把标签放置到root窗口上面
(5)如果有多个标签,就多用几个pack方法,如下:
代码:
运行结果:
第三节:组件和按钮
1、21个核心组件:Toplevel、Label、Button、Canvas、Checkbutton、Entry、Frame、LabelFrame、Listbox、
Menu、Menubutton、Message、OptionMenu、PaneWindow、Radiobutton、Scale、Scrollbar、Spinbox、Text、Bitmap、Image。
2、Button按钮组件
(1)源代码
(2)按钮组件与功能绑定
第一种方法:在按钮组件被声明的时候用command属性声明,command接受一个函数名。
例子:按下按钮,在窗口上增加一个新的label
代码:
效果(每点击一次就会增加一个Label):
第二种方法:使用bind方法,该方法是Misc类的一个方法
代码:
效果:
解读:bind可以接受三个参数
1)第一个参数是事件类型,格式为
<MODIFIER-MODIFIER-TYPE-DETALL>,其中MODIFIER是修饰符,可以取下面这些值:
Control, Mod2, M2, Shift, Mod3, M3, Lock, Mod4, M4, Button1, B1,
Mod5, M5 Button2, B2, Meta, M, Button3,B3, Alt,
Button4, B4, Double, Button5, B5 Triple, Mod1, M1。
第三个TYPE表示类型,可以取下面的值:
Activate, Enter, Map, ButtonPress, Button, Expose, Motion, ButtonRelease,FocusIn, MouseWheel,
Circulate, FocusOut, Property, Colormap, Gravity Reparent,
Configure, KeyPress, Key, Unmap, Deactivate, KeyRelease Visibility, Destroy,Leave
常见的就是鼠标左键单击<Button-1>
2)第二个参数是函数名,对应的函数必须有一个参数,习惯上用event
(3)按钮属性示例
代码:
效果:
第四节:窗口布局
-
pack布局(简单堆砌)
参数:
side 指定停靠的方向:LEFT、TOP、BOTTOM、RIGHT
fill指定填充方式:X(水平方向)、Y(竖直方向)、BOTH(两个方向)、NONE(不填)
expand参数:YES、NO
anchor参数:N(上)、E(右)、S(下)、W(左)、CENTER(中)
ipadx表示内边距x的方向,ipady表示内边距y的方向
示例:
代码:
效果:
-
grid布局(表格形式)
row表示行,从0开始
rowspan表示跨越的行数
column表示列,从0开始
column表示跨越的列数
sticky表示方向,N(上)、E(右)、S(下)、W(左)、CENTER(中)
也支持ipadx、ipady、padx、pady参数,默认边距是0
代码示例:
效果
pack和grid不能同时用
- place布局(绝对位置和相对位置)