问题描述
我正在制作一个计算器,我绑定了=按钮以返回按键,但它不起作用。我已经将按钮绑定到一个相等的功能上,并且还单击了功能
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
解决方法
public class AddScheduleActivity extends AppCompatActivity {
private FragmentOverview fragmentOverview;
private FragmentTodo fragmentTodo;
@Override
protected void onCreate(Bundle savedInstanceState) {
//Your codes
fragmentOverview = new FragmentOverview(new FragmentOverview.OverviewCallbacks() {
@Override
public void onReach() {
setTargetView();
}
});
}
}
如果运行此脚本,则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
绑定。仅当键盘焦点位于该按钮上时才会发生该事件,请尝试按Tab直到按钮具有焦点。
一种解决方案可能是将其绑定到框架,甚至更好地绑定到窗口。就像下面的例子中一样。
return