这个程序只是一个简单的代码,还有继续优化的方法。但是对于刚刚学习python中的tkinter来说应该是一个可以的练习代码。如有错误,希望可以在评论区里指正,谢谢。
import tkinter
# 设置窗口信息
root = tkinter.Tk()
root.title("tkinter登录窗口")
root.geometry("300x300")
root.resizable(0,0) #固定窗口大小,不能调节窗口的大小
# 建立一个保存账号与密码的字典
AcAndPd = {"":""} #默认创建一个空键值对
def load():
# 获得账号
a = accountVar.get()
p = passwordVar.get()
if a not in APdic and p not in APdic:
# 创建了一个顶层窗口
b = tkinter.Toplevel()
label_finish = tkinter.Label(b, text="还没注册呢~_~").pack()
b.mainloop()
elif APdic[a] != p:
e = tkinter.Toplevel()
label_finish = tkinter.Label(e, text="还没注册呢~_~").pack()
e.mainloop()
elif a == "" or p == "":
f = tkinter.Toplevel()
label_finish = tkinter.Label(f, text="还没注册呢~_~").pack()
f.mainloop()
else:
# 创建了一个顶层窗口
c = tkinter.Toplevel()
label_finish = tkinter.Label(c, text="注册成功").pack()
c.mainloop()
def reg():
# 注册布局
regWin = tkinter.Toplevel()
regWin.title("Tk注册窗口")
regWin.geometry("200x200")
regWin.resizable(0,0)
#账号控件布局,账号获取
account = tkinter.Label(regWin, text="账 号", font=("黑体",10))
account.place(x=10, y=20, width=50, height=20)
accountVar = tkinter.StringVar() #绑定变量
account_entry = tkinter.Entry(regWin, textvariable=accountVar)
account_entry.place(x=80, y=20, width=100, height=20)
#密码部件布局,密码设置
pd = tkinter.Label(regWin, text="密 码", font=("黑体", 10))
pd.place(x=10, y=50, width=50, height=20)
#绑定变量获得输入框的内容
pdVar = tkinter.StringVar()
pd_entry = tkinter.Entry(regWin,textvariable=pdVar)
pd_entry.place(x=80, y=50, width=100, height=20)
#确认密码
pd1 = tkinter.Label(regWin, text="确认密码")
pd1.place(x=10, y=80, width=50, height=20)
pd1Var = tkinter.StringVar()
pd1_entry = tkinter.Entry(regWin, textvariable=pd1Var)
pd1_entry.place(x=80, y=80, width=100, height=20)
#账号密码获取
def finish():
account_get = accountVar.get()
pd_get = pdVar.get()
pd1_get = pd1Var.get()
# 判断密码账号
if account_get=="" or pd_get=="" or pd1_get=="":
a = tkinter.Toplevel()
labela = tkinter.Label(a, text="注册失败").pack()
a.mainloop()
elif pd1_get != pd_get:
b = tkinter.Toplevel()
labelb = tkinter.Label(b, text="注册失败").pack()
b.mainloop()
else:
c = tkinter.Toplevel()
AcAndPd[account_get] = pd_get
labelc = tkinter.Label(c, text="注册成功").pack()
c.mainloop()
#完成按钮
button_finish = tkinter.Button(regWin, text="完成", font=("黑体", 10), command=finish).place(x=80, y=120, width=40, height=20)
regWin.mainloop()
label_top = tkinter.Label(root, text="Tkinter登录窗口", font=("楷体", 15)).place(x=0, y=0, width=300, height=80)
"""账号布局"""
#账号标签
label_account = tkinter.Label(root, text="账号", font=("黑体", 10))
label_account.place(x=70, y=100, width=40, height=20) #设置“账号”标签的位置和长度、宽度
#账号输入框
accountVar = tkinter.StringVar() #绑定变量,以便获取输入框的账号,密码也是如此
entry_account = tkinter.Entry(root, textvariable=accountVar)
entry_account.place(x=120, y=100, width=100, height=20)
"""密码布局"""
#密码标签
label_password = tkinter.Label(root, text="密码", font=("黑体", 10))
label_password.place(x=70, y=130, width=40, height=20)
#密码输入框
passwordVar = tkinter.StringVar()
entry_password = tkinter.Entry(root, show="*", textvariable=passwordVar) #show显示的是*
entry_password.place(x=120, y=130, width=100, height=20)
"""登录注册布局"""
button_load = tkinter.Button(root, text="登录", font=("黑体", 10), command=load)
button_load.place(x=100, y=170, width=40, height=20)
button_registered = tkinter.Button(root, text="注册", font=("黑体", 10), command=reg)
button_registered.place(x=170, y=170, width=40, height=20)
root.mainloop() #循环显示
推荐视频:https://www.bilibili.com/video/av56753689?p=1
视频代码: 链接:https://pan.baidu.com/s/1f3JyuBBOYaXpPwNSSMD9QA
提取码:ngek