1. 窗口TKinter
Tkinter 是使用 python 进行窗口视窗设计的模块. 简单的构造, 多平台, 多系统的兼容性, 能让它成为让你快速入门定制窗口文件的好助手. 它在 python 窗口视窗模块中是一款简单型的. 所以用来入门, 熟悉 窗口视窗的使用, 非常有必要。
1.1 Label & Button 标签和按钮
每一个 tkinter 应用的主体框架都可以 定义 window
窗口 和 window
的一些属性, 然后书写窗口内容, 最后执行window.mainloop
让窗口活起来.
标签 Label:
import tkinter as tk
#窗口主题框架
window = tk.Tk() #创建一个 TK 的窗口window
window.title('my window') #窗口命名
window.geometry('200x100') #大小
# 这里是窗口的内容
#窗口内容 创建标签l
l = tk.Label(window,
text='Hello!', # 标签的文字
bg='green', # 背景颜色
font=('Arial', 12), # 字体和字体大小
width=15, height=2 # 标签长宽
)
l.pack() # 固定窗口位置
window.mainloop() #循环窗口
结果:会出现如下标签
按钮 Button:
import tkinter as tk
#窗口主题框架
window = tk.Tk() #创建一个 TK 的窗口window
window.title('my window') #窗口命名
window.geometry('200x100') #大小
# 这里是窗口的内容
var = tk.StringVar() #tk中的变量,指代字符串
#窗口内容 创建标签l
l = tk.Label(window,
textvariable = var, # 标签的文字
bg='green', # 背景颜色
font=('Arial', 12), # 字体和字体大小
width=15, height=2 # 标签长宽
)
l.pack() # 固定窗口位置
on_hit = False #默认初始状态为False
def hit_me():
global on_hit
if on_hit == False: #点击完毕则变化
on_hit = True
var.set('you hit me') #将变量var设置为
else:
on_hit = False
var.set('') #设置文字为空
b = tk.Button(window,text='hit me',width=15,height=2,command = hit_me)
#执行的命令command是hit_me这个函数,需提前定义
b.pack()
window.mainloop() #循环窗口
则点击‘hit me’,循环以下窗口
1.2 Entry & Text 输入 & 文本框
import tkinter as tk
#窗口主题框架
window = tk.Tk() #创建一个 TK 的窗口window
window.title('my window') #窗口命名
window.geometry('200x200') #大小
e = tk.Entry(window,show='*') #使输入框中都显示*
e.pack()
def insert_point():
var=e.get()
t.insert('insert',var) #insert的用法,第一个参数insert表示在按键所在位置
def insert_end():
var=e.get()
t.insert('end',var) #insert的用法,第一个参数end表示在文本末尾
#t.insert(1.1,var) 插入到指定位置,1.1表示第一行,第一列的位置
b1 = tk.Button(window,text='insert point',width=15,height=2,command = insert_point)
b1.pack()
b2 = tk.Button(window,text='insert end',command = insert_end) #默认大小
b2.pack()
t = tk.Text(window,height=2) #文本框,设置为2个字符宽度
t.pack()
window.mainloop() #循环窗口
结果:
最上面是输入框,最下面是文本框,中间两行为按钮选择。
1.3 Listbox列表部件
import tkinter as tk
#窗口主题框架
window = tk.Tk() #创建一个 TK 的窗口window
window.title('my window') #窗口命名
window.geometry('200x200') #大小
var1 = tk.StringVar()
l=tk.Label(window, bg='yellow', width=4, textvariable=var1)
l.pack()
def print_selection():
value=lb.get(lb.curselection()) #curselection()表示光标选定的东西
var1.set(value) #将上面的值附到Label的变量var1中
b1 = tk.Button(window,text='print selection',width=15,height=2,command = print_selection)
b1.pack()
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') #在第一位插入first
lb.insert(2,'second')
lb.delete(2) #删除第二位
lb.pack()
window.mainloop() #循环窗口
结果为
</