问题:每次我点确定是会运行fun函数,fun函数里面我只想引用creatAuthCode里上一次运行的结果,但是每次运行fun函数 ,creatAuthCode函数也跟着运行,导致creatAuthCode每次输出的值都不一样,因此fun函数每次应用额函数也不一样,我只想做一个简单的登录带验证码数字的界面,并且当密码 账号 验证码输入正确 才显示登录成功。
from tkinter import *
import tkinter as tk
import random
#定义函数,功能为生成数字组成的6位随机验证码
def creatAuthCode():
str1 = ""
for i in range(2):
ch = chr(random.randrange(ord('0'), ord('9') + 1))
str1 += ch
print(str1)
txt.set(str1)
x= creatAuthCode
#定义函数,判断输入是否正确
def fun():
d1 = text1.get()
d2 = text2.get()
if d1=="1"and d2=="1" and code==creatAuthCode():
w="登陆成功!"
elif( d1==""or d2=="") :
w="请输入正确的格式"
else:
w="输入错误!"
t.insert('insert',w)
#创建根窗口
root=Tk()
root.title("登录界面")
#root.resizable(False,False)
root.geometry("400x400")
#设置用户账号输入框
ID=Label(root,text="账号:")
ID.grid(row=0,column=1)
text1=Entry(root)
text1.grid(row=0,column=2)
#设置用户密码码输入框
password=Label(root,text="密码:")
password.grid(row=1,column=1)
text2=Entry(root)
text2.grid(row=1,column=2)
#设置验证码输入框
code=Label(root,text="验证码:")
code.grid(row=2,column=1)
code=Entry(root)
code.grid(row=2,column=2)
#设置获取验证码的按钮
txt=StringVar()
txt.set("点击")
codestr=Button(root,textvariable=txt,command=creatAuthCode,fg="red")
codestr.grid(row=2,column=3)
#设置登录按钮
c=tk.Button(root,text="确定",font=('宋体',20),command=fun)
c.place(relx=0.5,rely=0.8,anchor=CENTER)
#显示框
t=tk.Text(root,font=('Arial',20),height=1,width=20)
t.grid(row=4,column=2)
root.mainloop()