tkinter登录窗口

这个程序只是一个简单的代码,还有继续优化的方法。但是对于刚刚学习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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值