哪位大佬帮我看看我的tkinter代码哪里出了问题
67课中tkinter4 中小甲鱼讲了一个做简单计算器的代码,我基本就是按照课上的代码抄的,可编译后,出来的计算器,第二个加数的Entry框无法输入任何数字或字符,但第一个加数的Entry框却一切正常,这两个Entry框的代码是复制粘贴的,编译过程中也没有出现警示或错误,检查了几遍,也跟小甲鱼的原代码对了好几遍,没出入。头发都被抓掉了几根了,求各位大佬帮忙看看哪里的问题#简单的计算器
from tkinter import *
master = Tk()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
def test(content):
return content.isdigit()
testCMD = master.register(test)
e1 = Entry(master, textvariable=v1, validate='key', \
validatecommand=(testCMD, '%P'))\
.grid(row=0, column=0)
Label(master, text='+').grid(row=0, column=1)
e2 = Entry(master, textvariable=v2, validate='key', \
validatecommand=(testCMD, '%p'))\
.grid(row=0, column=2)
Label(master, text='=').grid(row=0, column=3)
e3 = Entry(master, textvariable=v3, state='readonly')\
.grid(row=0, column=4)
def calc():
result = int(v1.get()) + int(v2.get())
v3.set(str(result))
Button(master, text='计算结果', command=calc)\
.grid(row=1, column=2)
mainloop()
验证 %p 改成大写的 %P,参考代码:
from tkinter import *
master = Tk()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
def test(content):
return content.isdigit()
testCMD = master.register(test)
e1 = Entry(master, textvariable=v1, validate='key', \
validatecommand=(testCMD, '%P'))\
.grid(row=0, column=0)
Label(master, text='+').grid(row=0, column=1)
e2 = Entry(master, textvariable=v2, validate='key', \
validatecommand=(testCMD, '%P'))\
.grid(row=0, column=2)
Label(master, text='=').grid(row=0, column=3)
e3 = Entry(master, textvariable=v3, state='readonly')\
.grid(row=0, column=4)
def calc():
result = int(v1.get()) + int(v2.get())
v3.set(str(result))
Button(master, text='计算结果', command=calc)\
.grid(row=1, column=2)
mainloop()
谢谢啦!可为啥不报错呢?
页:
[1]