这是我尝试过的
self.startbutton.bind('<Return>',self.startbutton.invoke)
按Enter键无效,但按空格键可激活绑定到self.startbutton的命令.我试过绑定到< KeyPress-KP_Enter>结果相同.
我也试过绑定到我想要执行的命令:
self.startbutton.bind('<Return>',self.start)
但结果是一样的.
编辑
这是一个展示我正在谈论的行为的小脚本.
import tkinter as tkroot = tk.Tk() def start(): print('started') startbutton.configure(state=tk.Disabled) clearbutton.configure(state=tk.norMAL)def clear(): print('cleared') clearbutton.configure(state=tk.Disabled) startbutton.configure(state=tk.norMAL) frame = tk.Frame(root)startbutton = tk.button(frame,text = 'Start',command = start,state=tk.norMAL)clearbutton = tk.button(frame,text = 'Clear',command = clear,state = tk.Disabled)startbutton.bind('<Return>',start) startbutton.pack()clearbutton.pack()startbutton.focus_set() frame.pack() root.mainloop()
在这种情况下,按下空格键时它会起作用,当我按Enter键时它会失败.当我按Enter键时,我收到一条错误消息,说有一个参数被传递,但没有一个是必需的.当我更改定义以获取伪参数时,按Enter键工作,但按空格键失败,因为缺少参数.
我无法理解wizzwizz4的答案是如何工作的.此外,当我在实际脚本中按Enter键时,我没有看到错误消息,但是发布的时间太长了.
**再次编辑**
我只是在Mike-SMT的脚本中忽略了None的默认值.这让事情变得清晰.
解决方法 只要补偿绑定将发送给函数/方法的事件,您对self.startbutton.bind(‘< Return>‘,self.start)的使用应该可以正常工作.这是一个简单的例子,只要按钮具有焦点,它就可以使用回车键.
import tkinter as tkroot = tk.Tk()def do_something(event=None): print("dID something!")btn = tk.button(root,text="Do something",command=do_something)btn.pack()btn.bind("<Return>",do_something)#root.bind("<Return>",do_something) will work without the button having focus.root.mainloop()总结
以上是内存溢出为你收集整理的python – 如何使用回车键调用按钮命令全部内容,希望文章能够帮你解决python – 如何使用回车键调用按钮命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)