簡單理解,和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()