python - tkinter 中是否有一些用于返回键的新关键字?
问题描述
我正在制作一个计算器,我绑定了 = 按钮以返回按键,但它不起作用。我已将我的按钮绑定到一个相等的功能,也绑定到点击功能
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
解决方案
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()
推荐阅读
- node.js - Restify 服务器内容长度不匹配
- python - 打开 csv 文件而不自动分离内容
- arrays - Postgres将多维数组嵌套到列?
- python - 如何格式化 2018 年 1 月,即如何在 python 中获取 mon-year 格式
- android - 设备屏幕关闭时如何打开手电筒?
- python - ModuleNotFoundError:没有名为“tkinter”/ PyCharm 的模块
- docker - 撰写时需要Dockerfile?
- c - 警告:函数“timerisset”的隐式声明
- python - Jupyter notebook 不运行任何命令
- c++14 - 特殊最小生成树