加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何使用回车键调用按钮命令

发布时间:2020-12-20 11:06:52 所属栏目:Python 来源:网络整理
导读:在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 python 3.6.1. 这是我尝试过的 self.startButton.bind('Return',
在tkinter中,当按钮具有焦点时,您可以按空格键执行与该按钮关联的命令.我正在尝试按Enter键做同样的事情.我确定我过去做过这个,但我找不到代码,而我现在正在做的事情是行不通的.我在Mac上使用 python 3.6.1.

这是我尝试过的

self.startButton.bind('<Return>',self.startButton.invoke)

按Enter键无效,但按空格键可激活绑定到self.startButton的命令.我试过绑定到< KeyPress-KP_Enter>结果相同.

我也试过绑定到我想要执行的命令:

self.startButton.bind('<Return>',self.start)

但结果是一样的.

编辑

这是一个展示我正在谈论的行为的小脚本.

import tkinter as tk

root = 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 tk


root = 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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读