|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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()
复制代码
|
|