|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
RT,就是一开始是空的,然后第一次输入完成之后想把第一次输入的数值删除掉,重新输入第二次数值,可是发现第一次的数值只能删除剩下 最后一位数,不能全部删除,请问这是什么问题?
from tkinter import *
master = Tk()
frame = Frame(master)
frame.pack(padx=10,pady=10)
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
def test(content):
return content.isdigit() #用这个函数测试输入是否为数字,返回True或者False
testCMD = master.register(test) #要作为测验的函数,需要经过这一步
e1 = Entry(frame, width=10,textvariable=v1,validate='key',\
validatecommand=(testCMD,'%P')).grid(row=1,column=0)
v = IntVar()
v.set(1)
Radiobutton(frame,text='+',variable=v,value=1).grid(row=0,column=1)
Radiobutton(frame,text='-',variable=v,value=2).grid(row=1,column=1)
Radiobutton(frame,text='*',variable=v,value=3).grid(row=2,column=1)
Radiobutton(frame,text='/',variable=v,value=4).grid(row=3,column=1)
e2 = Entry(frame, width=10,textvariable=v2,validate='key',\
validatecommand=(testCMD,'%P')).grid(row=1,column=2)
Label(frame,text='=').grid(row=1,column=3)
e3 = Entry(frame,width=10,textvariable=v3,state='readonly').grid(row=1,column=4)
def calc():
A = v.get()
if A == 1:
result = int(v1.get()) + int(v2.get())
v3.set(str(result))
elif A == 2:
result = int(v1.get()) - int(v2.get())
v3.set(str(result))
elif A == 3:
result = int(v1.get()) * int(v2.get())
v3.set(str(result))
elif A == 4:
try:
result = float(v1.get()) / float(v2.get())
v3.set(str(result))
except:
v3.set('被除数不能为0')
Button(frame, text='开始计算',command=calc).grid(row=5,column=2,pady=5)
mainloop()
这是源代码,请教各位 |
|