鱼C论坛

 找回密码
 立即注册
查看: 1725|回复: 6

[已解决]关于tkinter中button按钮事件绑定的问题

[复制链接]
发表于 2020-4-16 22:20:38 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 xiangzhihengkan 于 2020-4-17 11:48 编辑

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

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

代码附上:
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()


最佳答案
2020-4-16 22:20:39
实现快速输入的话,同一个按钮绑定你这两个回调函数就行了
TJRXUJGLD_@)`%LO837`C2X.png

最佳答案

查看完整内容

实现快速输入的话,同一个按钮绑定你这两个回调函数就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 22:20:39 | 显示全部楼层    本楼为最佳答案   
实现快速输入的话,同一个按钮绑定你这两个回调函数就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 22:44:49 | 显示全部楼层
没类哪来的self。

self 改 event

只有按钮获取焦点才能使用,没焦点也不起作用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-16 22:47:19 | 显示全部楼层
ba21 发表于 2020-4-16 22:44
没类哪来的self。

self 改 event

button1.focus_set()获取焦点的代码我有加,换成event还是不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-16 23:45:44 | 显示全部楼层
xiangzhihengkan 发表于 2020-4-16 22:47
button1.focus_set()获取焦点的代码我有加,换成event还是不行

你别逗了好吧。不行。
你以为代码我一看不调试就告诉你问题在哪了?
还有一处你别大V 小v你也搞不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-17 09:42:48 | 显示全部楼层
ba21 发表于 2020-4-16 23:45
你别逗了好吧。不行。
你以为代码我一看不调试就告诉你问题在哪了?
还有一处你别大V 小v你也搞不懂。

我懂你的意思了,但是我想实现的是可以随意按V 或者X键(怪我没描述清楚),这样怎么解决?好像焦点只能集中在一个按键上,我集中在button1上,就没有办法呢通过X键来触发事件了,请问这个有什么解决办法吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-17 15:12:54 | 显示全部楼层
jinlovelive 发表于 2020-4-17 13:15
实现快速输入的话,同一个按钮绑定你这两个回调函数就行了

谢谢,好思路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 14:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表