2.4、Button 的焦点
# focus_set:设置当前组件得到焦点
#创建三个 Button,各自对应回调函数;将第二个 Button 设置焦点,程序运行是按“Enter”,
判断程序的打印结果
from Tkinter import *
def cb1():
print 'button1 clicked'
def cb2(event):
print 'button2 clicked'
def cb3():
print 'button3 clicked'
root = Tk()
b1 = Button(root,text = 'Button1',command = cb1)
b2 = Button(root,text = 'Button2')
b2.bind("<Return>",cb2)
b3 = Button(root,text = 'Button3',command = cb3)
b1.pack()
b2.pack()
b3.pack()
b2.focus_set()
root.mainloop()
'''
上例中使用了 bind 方法,它建立事件与事件处理函数(响应函数)之间的关系,每当产生
<Enter>事件
后,程序便自动的调用 cb2,与 cb1,cb3 不同的是,它本身还带有一个参数----event,这个参数
传递
响应事件的信息。
from Tkinter import *
def printEventInfo(event):
print 'event.time = ' , event.time
print 'event.type = ' , event.type
print 'event.WidgetId = ', event.widget
print 'event.KeySymbol = ',event.keysym
root = Tk()
b = Button(root,text = 'Infomation')
b.bind("<Return>",printEventInfo)
b.pack()
b.focus_set()
root.mainloop()
'''
犯了个错误,将<Return>写成<Enter>了,结果是:当鼠标进入 Button 区域后,事件
printEventInfo
被调用。程序打印出了 event 的信息。
代码
from tkinter import *
def cb1():
print("quehui_1 单击")
def cb2():
print("quehui_2 单击")
def cb3():
print("quehui_3 单击")
quehui = Tk()
b1 = Button(quehui,text = 'quehui_1',command = cb1)
b2 = Button(quehui,text = 'quehui_2')
b2.bind("<Return>",cb2)
b3 = Button(quehui,text = 'quehui_3',command = cb3)
b1.pack()
b2.pack()
b3.pack()
b2.focus_set()
quehui.mainloop()

from tkinter import *
def printE(event):
print("event =",event.time)
print('event.type =',event.type)
print('event.widgetid =',event.widget)
print('event.keysymbol =',event.keysym)
print("阙辉")
quehui = Tk()
b = Button(quehui,text = 'quehui_1')
b.bind("<Return>",printE)
b.pack()
b.focus_set()
quehui.mainloop()

浙公网安备 33010602011771号