提问:为什么Tkinter的被焦点的Button按钮,鼠标点击和空格键有一样的效果
2016-03-17 02:51
876 查看
引用一段Button例子的代码,
源自:/article/8161699.html
作者:jcodeer
博客:Tkinter教程之Button篇(1)
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,这个参数传递
响应事件的信息。
'''
运行上例代码会产生三个按钮,“Button1”,“Button2”,“Button3”,按钮的焦点在“Button2”
空格键和鼠标左键是同等效果吗?查了很多文档都没结果。
如果效果一样,这就很有意思了,我们在b1下加一句代码:b1.bind("<space>",cb2)
b1 = Button(root,text = 'Button1',command = cb1)
b1.bind("<space>",cb2)
我们把b1按钮和空格键<space>绑定,并在空格键被按下的时候调用回调函数cb2
运行后发现:
鼠标左键会输出:
button1 clicked
而空格键按下会输出:
button2 clicked
button1 clicked
函数cb2会被执行后,command的cb1才被执行。
其实想知道的是有没有解除鼠标左键和空格键同样效果的方法。当Button的焦点在Button3的时候,不希望空格键被按下的时候,cb3被执行,而是空格键只能在Button1被焦点的时候才有效。
源自:/article/8161699.html
作者:jcodeer
博客:Tkinter教程之Button篇(1)
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,这个参数传递
响应事件的信息。
'''
运行上例代码会产生三个按钮,“Button1”,“Button2”,“Button3”,按钮的焦点在“Button2”
鼠标左键/空格键 | 回车键 | 动画效果 | |
---|---|---|---|
Button1 | button1 clicked | 无输出 | 有 |
Button2 | 无输出 | button2 clicked | 无 |
Button3 | button3 clicked | 无输出 | 有 |
如果效果一样,这就很有意思了,我们在b1下加一句代码:b1.bind("<space>",cb2)
b1 = Button(root,text = 'Button1',command = cb1)
b1.bind("<space>",cb2)
我们把b1按钮和空格键<space>绑定,并在空格键被按下的时候调用回调函数cb2
运行后发现:
鼠标左键会输出:
button1 clicked
而空格键按下会输出:
button2 clicked
button1 clicked
函数cb2会被执行后,command的cb1才被执行。
其实想知道的是有没有解除鼠标左键和空格键同样效果的方法。当Button的焦点在Button3的时候,不希望空格键被按下的时候,cb3被执行,而是空格键只能在Button1被焦点的时候才有效。
相关文章推荐
- [RxJS] Creating Observable From Scratch
- Java 中如何对 Iterator<Text> values 实现两次遍历
- java的匿名内部类
- 简单配置nginx使之支持pathinfo
- ssh 连上服务器之后,终端的上下左右键变成乱码
- ssh 连上服务器之后,终端的上下左右键变成乱码
- 对zend中变量的一些说明
- 欢迎使用CSDN-markdown编辑器
- 对zend中变量的一些说明
- markdown语法小记录
- @date2016-03-17 02:19(软件工程男的日常)
- PHP中对变量的一些说明
- 生成月初月末便于拼接sql
- Bzoj 2705: [SDOI2012]Longge的问题 欧拉函数,数论
- Githup 简单使用
- webshell下执行命令脚本汇集
- Kithara RTS进程与Qt应用程序间通信(共享内存)
- 引擎V8及优化技术
- 抓包不求人 第二课笔记
- hadoop2运行MR异常解决-NoSuchMethodException:xxMapper.<init>()