我正在制作一个计算器,我绑定了 = 按钮以返回按键,但它不起作用。我已将按钮绑定到相同的函数以及单击函数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 回答
![?](http://img1.sycdn.imooc.com/545863c10001865402200220-100-100.jpg)
富国沪深
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()
添加回答
举报
0/150
提交
取消