简单理解,和Label比就是多了个command=函数名。command表示这个按钮按下去后对应的执行内容。没有回调函数的按钮是没有用的。
注意:
def printhello()一定要放在command调用之前,否则会认为未定义该函数。
def printhello()函数无参数时,点击按钮后才会执行函数里的print命令;有参数时,不点击按钮也会执行。
示例1
import Tkinter as tk
window=tk.Tk()
window.title('MYTkinter')
window.geometry('400x400')
def printsth(i):
if i==1:
print ('i==1时点击按钮1的解释说明')
else:
print ('i<>1时点击按钮1的解释说明')
j=2
b=tk.Button(window,text='按钮1',font=('Arial',12),width=10,height=10,command=printsth(j))
b.pack()
window.mainloop()
示例2(示例1的基础上扩展)
import Tkinter as tk
window=tk.Tk()
window.title('MYTkinter')
window.geometry('400x400')
var=tk.StringVar()
l=tk.Label(window,textvariable=var,bg='yellow',font=('Arial', 12), width=30, height=3)
l.pack()
def varvalue(i):
if i==1:
var.set('i==1时点击按钮1的解释说明')
else:
var.set('i<>1时点击按钮1的解释说明')
j=2
b=tk.Button(window,text='按钮1',font=('Arial',12),width=10,height=10,command=varvalue(j))
b.pack()
window.mainloop()
示例3(示例2的基础上扩展)
import Tkinter as tk
window=tk.Tk()
window.title('MYTkinter')
window.geometry('400x400')
var=tk.StringVar()
l=tk.Label(window,textvariable=var,bg='yellow',font=('Arial', 12), width=30, height=3)
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='按钮1',font=('Arial',12),width=10,height=10,command=hit_me)
b.pack()
window.mainloop()