什么是Tkinter?
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
使用
导入
import tkinter
注意:Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写。
创建一个GUI程序
- 1、导入 Tkinter 模块
- 2、创建控件
- 3、指定这个控件的 master, 即这个控件属于哪一个
- 4、告诉 GM(geometry manager) 有一个控件产生了。
#!/usr/bin/python3 import tkinter top = http://tkinter.Tk() # 进入消息循环 top.mainloop()

窗口主体框架
每一个 tkinter 应用的主体框架都可以包含下面这部分. 定义 window
窗口 和 window
的一些属性, 然后书写窗口内容, 最后执行window.mainloop
让窗口活起来.
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('500x500')
#注意:这里的乘是×不是*
# 这里是窗口的内容
window.mainloop()

窗口内容
Label & Button 标签和按钮
这次我们会建立一个用来描述的标签 tk.Label
, 比如:
import tkinter as tk
#创建窗口
window=tk.Tk()
window.title('Mywindow')#窗口的标题
window.geometry('200x100')#窗口的大小
#定义一个lable
l = tk.Label(window,
text='Hi! this is TK!', # 标签的文字
bg='green', # 标签背景颜色
font=('Arial', 12), # 字体和字体大小
width=15, height=2 # 标签长宽(以字符长度计算)
)
l.pack() # 固定窗口位置
window.mainloop()

关于Label的更多内容可以看这里https://www.runoob.com/python/python-tk-label.html
我们也可以通过变量的形式控制标签的显示, 这时我们引入按钮 tk.Button
的概念, 没点一次按钮, 标签变化一次. 用一下内容替换上面的标签. 并把需要变化的文字存成变量 var
:
var = tk.StringVar() # 这时文字变量储存器
l = tk.Label(window,
textvariable=var, # 使用 textvariable 替换 text, 因为这个可以变化
bg='green', font=('Arial', 12), width=15, height=2)
l.pack()
接着我们来做 按钮 tk.Button
:
b = tk.Button(window,
text='hit me', # 显示在按钮上的文字
width=15, height=2,
command=hit_me) # 点击按钮式执行的命令
b.pack() # 按钮位置
那么点击是的命令我们用 if
else
语句来判断. 用 on_hit
来判断当前状态.
on_hit = False # 默认初始状态为 False
def hit_me():
global on_hit
if on_hit == False: # 从 False 状态变成 True 状态
on_hit = True
var.set('you hit me') # 设置标签的文字为 'you hit me'
else: # 从 True 状态变成 False 状态
on_hit = False
var.set('') # 设置 文字为空
完整代码:
import tkinter as tk
#创建窗口
window=tk.Tk()
window.title('Mywindow')#窗口的标题
window.geometry('200x100')#窗口的大小
#定义一个lable
var=tk.StringVar()#定义一个字符串变量
l = tk.Label(window,
textvariable=var, # 标签的文字
bg='green', # 标签背景颜色
font=('Arial', 12), # 字体和字体大小
width=15, height=2 # 标签长宽
)
l.pack() # 固定窗口位置
#定义一个全局变量,来表明字符显示与不显示
on_hit=False
#按钮的函数
def hit_me():
global on_hit#声明全局变量
if on_hit==False:
on_hit=True
var.set('You hit me!')
else:
on_hit=False
var.set('')
#按钮
b=tk.Button(window,text='点我',width=15,height=2,command=hit_me)#点击按钮执行一个名为“hit_me”的函数
b.pack()
window.mainloop()
没有点击时:

点击第一次:

点击第二次:

推荐学习视频:
Python Tkinter 数字时钟小项目edu.youkuaiyun.com