|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Jiang_yt_ 于 2017-10-23 13:58 编辑
可能是我的问题没有描述清楚,就比如下面的程序,为什么第一次执行就没有问题(比如1+2 =3),然后再接着修改成11+22 = 程序就没有反应了??
#coding=utf-8
#!/usr/bin/env python
from tkinter import *
root = Tk()
def checkInt(content):
# try:
# content = int(content)
# except ValueError:
# print('请输入数字')
# except:
# print('Unexpected error:', sys.exc_info()[0])
# if isinstance(content, int):
# print('正确')
# return True
# else:
# print('错误')
# print(content)
# return False
return content.isdigit()
def sumTest():
sumNum.delete(0, END)
if not num1.get().isdigit():
num1Value = '0'
else:
num1Value= num1.get()
if not num2.get().isdigit():
num2Value = '0'
else:
num2Value = num2.get()
print(str(int(num1Value) + int(num2Value)))
sumValue.set(str(int(num1Value) + int(num2Value)))
return True
def sumCal():
sumNum.delete(0, END)
if not num1.get().isdigit():
num1Value = '0'
else:
num1Value= num1.get()
if not num2.get().isdigit():
num2Value = '0'
else:
num2Value = num2.get()
print(str(int(num1Value) + int(num2Value)))
sumValue.set(str(int(num1Value) + int(num2Value)))
return True
check = root.register(checkInt)
sumValue = StringVar()
num1 = Entry(root, width = 9, validate = 'key', validatecommand = (check, '%P'))
l1 = Label(root, text = '+')
num2 = Entry(root, width = 9, validate = 'key', validatecommand = (check, '%P'))
l2 = Label(root, text = '=')
# sumNum = Entry(root, width = 9, state = 'readonly', textvariable = sumValue)
sumNum = Entry(root, width = 9, state = 'readonly', textvariable = sumValue, validate = 'focusin', validatecommand = sumTest)
# button1 = Button(root, text = '计算', width = 8, command = sumCal)
# button1.grid(row = 1, column = 2, pady = 5)
num1.grid(row = 0, column = 0, padx = 10, pady = 10)
l1.grid(row = 0, column = 1, padx = 10, pady = 10)
num2.grid(row = 0, column = 2, padx = 10, pady = 10)
l2.grid(row = 0, column = 3, padx = 10, pady = 10)
sumNum.grid(row = 0, column = 4, padx = 10, pady = 10)
mainloop()
|
|