|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# 问题如下:def calc()计算过程中,如果用e1.get()就会出错,但是在作者作品打印中,这种用法明明是可行的,见代码2
####代码一
from tkinter import *
master = Tk()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
def test(content):
return content.isdigit()
testCMD = master.register(test)
# v.set('小甲鱼') 如果有此设置的话,e1.get(),中e1会出错
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))
# 注意不能用e1.get
theButton = Button(master,text = '获得结果',bg = 'red',fg='blue',command =calc).grid(row = 1,column=2)
mainloop()
###代码2
from tkinter import *
root = Tk()
Label(root,text='账号',bg='green').grid(row=0,column=0)
Label(root,text='密码',bg='red').grid(row=1,column=0)
v1= StringVar()
v2 =StringVar()
e1 = Entry(root,textvariable=v1)
e2 = Entry(root,textvariable=v2,show='*')
e1.grid(row=0,column=1,padx=10,pady=5)
e2.grid(row=1,column=1,padx=10,pady=5)
def show():
print('账号:%s'% e1.get())
print('密码:%s'% e2.get())
Button(root,text='获取信息',width = 10,command = show)\
.grid(row=4,column=0,sticky=W)
Button(root,text='退出程序',width = 10,command = root.quit)\
.grid(row=4,column=1,sticky=E)
mainloop()
|
|