一 概述
Tkinter(Tk Interface)是python的标准GUI库。
二 Tkinter的常用部件
1 Label & Button(标签和按钮)
# 导入tkinter
import tkinter as tk
# 主窗口
window = tk.Tk()
window.title("My Window") # 窗口标题
window.geometry('200x100') # 窗口尺寸
# 标签
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='hit me', width=15, height=2, command=hit_me)
b.pack()
# 主事件循环
window.mainloop()
2 Entry & Text(输入和文本框)
# 导入tkinter
import tkinter as tk
# 主窗口
window = tk.Tk()
window.title('My Window')
window.geometry('200x200')
# 单行输入框
e = tk.Entry(window, show = None)
e.pack()
# 响应事件
def insert_point():
var = e.get()
t.insert('insert', var)
def insert_end():
var = e.get()
t.insert('end', var)
# 按钮1
b1 = tk.Button(window, text='insert point', width=15, height=2, command=insert_point)
b1.pack()
# 按钮2
b2 = tk.Button(window, text='insert end', width=15, height=2, command=insert_end)
b2.pack()
# 文本框
t = tk.Text(window, height=2)
t.pack()
# 主事件循环
tk.mainloop()
3 Listbox(列表)
# 导入tkinter
import tkinter as tk
# 主窗口
window = tk.Tk()
window.title('My Window')
window.geometry('200x200')
# 创建一个Label用于显示选中的内容
var1 = tk.StringVar()
l = tk.Label(window, bg = 'yellow', width = 10, textvariable = var1)
l.pack()
# 响应事件
def print_selection():
value = lb.get(lb.curselection())
var1.set(value)
# 按钮
bl = tk.Button(window, text = 'print_selection', width = 15, height = 2, command = print_selection)
bl.pack()
# Listbox
var2 = tk.StringVar()
var2.set((11, 22, 33, 44))
lb = tk.Listbox(window, listvariable = var2)
list_items = [1, 2, 3, 4]
for item in list_items:
lb.insert('end', item)
lb.insert(1, 'first')
lb.insert(2, 'second')
lb.pack()
# 主事件循环
window.mainloop()
4 Radi