相关文章推荐
粗眉毛的蚂蚁  ·  python tkinter | ...·  1 周前    · 
活泼的椰子  ·  self.tk.call(_flatten( ...·  4 天前    · 
高大的板栗  ·  tkinter中的askstring参数 ...·  2 天前    · 
暗恋学妹的柑橘  ·  AttributeError: ...·  2 天前    · 
有胆有识的开心果  ·  Java ...·  2 月前    · 
傻傻的大熊猫  ·  How to: Send and ...·  1 年前    · 

【python】tkinter练习笔记

5 年前

study.163.com/course/co

PS,老师声音很好听,好吧……也比较帅气(*^▽^*)

tk1 Label+Button
#tk1.py
#Label+Button
import tkinter as tk
window=tk.Tk()
window.title('tk1')
window.geometry('200x400')
var=tk.StringVar()
#Label的内容是可变的,但只能Lable.set()方法操作,不能手工输入
l=tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,height=2)
l.pack()
on_hit=False
#hit_me没有向外返回值,而是直接在函数内操作函数外的值
#一个是global on_hit,另一个是用var=tk.StringVar(),var.set()
def hit_me():
	global on_hit
	if on_hit==False:
		on_hit=True
		var.set('you hit me')
	else:
		on_hit=False
		var.set('no hit')
b=tk.Button(window,text='hitme',width=10,height=2,command=hit_me)
b.pack()
window.mainloop()
tk2 Entry-Button-Text


#tk2.py
#从上到下,Entry-Button-Text
#在Entry里输入,点击button时同步显示到Text中
import tkinter as tk
#Entry输入框有个show属性,可以设置输入不可见
#输入内容用Entry.get()获得
window=tk.Tk()
#e=tk.Entry(window,show='*')
e=tk.Entry(window,show=None)
e.pack()
def insert_point():
   #从Entry拿到输入
   var=e.get()
   #把输入插入Text文本框
   t.insert('insert',var)
def insert_end():
   var=e.get()
   t.insert('end',var)
b1=tk.Button(window,text='insert point',width=15,height=2,command=insert_point)
b2=tk.Button(window,text='input end',width=15,height=2,command=insert_end)
b1.pack()
b2.pack()
#Text的内容是用text.insert插入
t=tk.Text(window,height=2)
t.pack()
window.mainloop()


tk3 Label-Button-Listbox
#tk3.py
import tkinter as tk
#主要学习ListBox的用法
#Label-Button-Listbox
#点击button,在label中显示listbox的当前选择
#凡是标签参数里面想要用变量,都用tk.StringVar()这种类型
window=tk.Tk()
var=tk.StringVar()
#改变lable的显示内容,用var.set
l=tk.Label(window,textvariable=var,bg='yellow',width=4)
l.pack()
#Listbox有个listvariable参数,表示选项的内容,后面继续插入选项用Listbox,insert()方法
# 另外有参数selectmode=MULTIPLE,可以多选
var2=tk.StringVar()
var2.set(11)
#lb=tk.Listbox(window,listvariable=var2,selectmode=tk.MULTIPLE)
lb=tk.Listbox(window,listvariable=var2)
for item in [1,2,3,4]:
	lb.insert('end',item)
lb.insert(1,'first')
lb.insert(2,'second')
lb.delete(2)
def print_selection():
	#取得lb.curselection()
	value=lb.get(lb.curselection())
	#显示在Label中
	print(var2.get)
	var.set(value)
btn=tk.Button(window,text='print selection',command=print_selection)
btn.pack()
lb.pack()
window.mainloop()
tk4 Radiobutton+Label
#tk4.py
#Radiobutton+Label
#稍微复杂
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x200')
l=tk.Label(window,bg='yellow',text='Empty',width=20)
l.pack()
def print_selection():
   l.config(text='you have selected'+var.get())
#r1,r2等共用一个var=tk.StringVar(),var是参数variable的值
#variable=var,value='A'意思是:被选中时,变量var的值是'A',但是显示一直是text='opton A'
var=tk.StringVar()
r1=tk.Radiobutton(window,variable=var,value='A',text='opton A',command=print_selection)
r1.pack()