为了账号安全,请及时绑定邮箱和手机立即绑定

tkinter 中是否有一些新的返回键关键字?

tkinter 中是否有一些新的返回键关键字?

梦里花落0921 2023-08-08 17:24:57
我正在制作一个计算器,我绑定了 = 按钮以返回按键,但它不起作用。我已将按钮绑定到相同的函数以及单击函数def equal():    if screenVal.get().isdigit():        value = int(screenVal.get())    else:        try:            value = eval(screenVal.get())        except Exception:            value = "Err"    screenVal.set(value)    screenEnt.update()def click(event):    global screenVal    text = event.widget.cget("text")    if text == "=":        if screenVal.get().isdigit():            value = int(screenVal.get())        else:            try:                value = eval(screenVal.get())            except Exception:                value = "Err"        screenVal.set(value)        screenEnt.update()    elif text == "C":        screenVal.set("")        screenEnt.update()    else:        screenVal.set(screenVal.get() + text)        screenEnt.update()    b = Button(frame, text="=",  padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)    b.pack(side=LEFT)    b.bind('<Return>', click)有人可以帮忙吗?我正在 AMD 64 上开发 python 3.7.9
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

import tkinter as tk


root=tk.Tk()


def equal():

    print('equal')


def click(event):

    print('click')


b = tk.Button(root, text="=",  padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)

b.pack(side='left')

b.bind('<Return>', click)


root.mainloop()

如果运行此脚本,该equal命令将按预期工作。您的问题似乎是您无法执行绑定return。仅当键盘焦点位于该按钮上时才会发生该事件,尝试按 Tab 直到按钮获得焦点。


解决方案可能是将其绑定到框架上,甚至更好地绑定到窗户上。就像下面的例子一样。


import tkinter as tk


root=tk.Tk()


def equal():

    print('equal')


def click(event):

    print('click')


b = tk.Button(root, text="=",  padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)

b.pack(side='left')

root.bind('<Return>', click)


root.mainloop()


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信