xiangzhihengkan 发表于 2020-4-16 22:20:38

关于tkinter中button按钮事件绑定的问题

本帖最后由 xiangzhihengkan 于 2020-4-17 11:48 编辑

想实现的功能:想要在键盘按下 V键的时候,在组件中输入文本1,按下X键时在组件中输入文本2
可是只实现了鼠标点击可以输出,键盘绑定不成功,求大神解答

补充一下:我是想实现键盘输入X或者V的时候可以触发两个不同函数,但是我目前了解到焦点只能在一个按钮上,有没有什么办法
可以实现焦点自动切换以脱离鼠标控制。就像就像视频软件那样你按空格就是暂停,按左右键就是控制进度条(不了解机制,就只是举个例子{:10_245:})
小白一个,求大神解答

代码附上:

from tkinter import *
from tkinter import scrolledtext

def main():
    root = Tk()
    root.title("点名中,,,,,,")
    root.geometry("400x400")

    name_frame= LabelFrame(root,text="姓名:",padx=10,pady=10)
    name_frame.place(x=20,y=20)
    name_win = scrolledtext.ScrolledText(name_frame, width=20, height=5, padx=10, pady = 10,wrap = WORD)
    name_win.grid()

    def attend():
      name_win.insert(INSERT,"1")
    def attend1(self):
      attend()
    def not_attend():
      name_win.insert(INSERT,"2")
    def not_attend1(self):
      not_attend()
    button1 = Button(name_frame,text="出勤",command=attend)
    button1.bind("<Key-V>",attend1)
    button1.grid(sticky=W)
    button1.focus_set()
    button2 = Button(name_frame,text="缺勤",command=not_attend)
    button2.bind("<Key-X>",not_attend1)
    button2.grid(row=1,sticky=E)
    mainloop()

if __name__ == "__main__":
    main()


jinlovelive 发表于 2020-4-16 22:20:39

实现快速输入的话,同一个按钮绑定你这两个回调函数就行了

ba21 发表于 2020-4-16 22:44:49

没类哪来的self。

self 改 event

只有按钮获取焦点才能使用,没焦点也不起作用

xiangzhihengkan 发表于 2020-4-16 22:47:19

ba21 发表于 2020-4-16 22:44
没类哪来的self。

self 改 event


button1.focus_set()获取焦点的代码我有加,换成event还是不行{:10_243:}

ba21 发表于 2020-4-16 23:45:44

xiangzhihengkan 发表于 2020-4-16 22:47
button1.focus_set()获取焦点的代码我有加,换成event还是不行

你别逗了好吧。不行。
你以为代码我一看不调试就告诉你问题在哪了?
还有一处你别大V 小v你也搞不懂。

xiangzhihengkan 发表于 2020-4-17 09:42:48

ba21 发表于 2020-4-16 23:45
你别逗了好吧。不行。
你以为代码我一看不调试就告诉你问题在哪了?
还有一处你别大V 小v你也搞不懂。

我懂你的意思了,但是我想实现的是可以随意按V 或者X键(怪我没描述清楚),这样怎么解决?好像焦点只能集中在一个按键上,我集中在button1上,就没有办法呢通过X键来触发事件了,请问这个有什么解决办法吗?

xiangzhihengkan 发表于 2020-4-17 15:12:54

jinlovelive 发表于 2020-4-17 13:15
实现快速输入的话,同一个按钮绑定你这两个回调函数就行了

谢谢,好思路{:10_256:}
页: [1]
查看完整版本: 关于tkinter中button按钮事件绑定的问题