Tkinter实现登录成功后进入主界面

今天我们来用tkinter实现一下登录,然后进入软件界面的操作,核心就是用到一个方法wait_window(window=None)

话不多说直接撸代码。

'''先写个登录框框吧,直接上函数吧,类真的累'''
def login(master):

    login_frame = tk.Frame(master)
    login_frame.grid(padx=15,pady=15)

    ttk.Label(login_frame,text='用户名').grid(column=1,row=1,columnspan=2)
    ttk.Entry(login_frame,).grid(column=3,row=1,columnspan=3)

    ttk.Label(login_frame,text='密码').grid(column=1,row=2,columnspan=2)
    ttk.Entry(login_frame,show='*').grid(column=3,row=2,columnspan=3)

    def reg():
        '''这里就写你的登录需要的内容就行'''
        reg_top=tk.Toplevel(login_frame)
        tk.Label(reg_top,text='用户注册').grid(column=2,row=2)

    def cert():
        '''这里需要验证用户名和密码对不对,不对就蹦出个对话框告诉他,对就destroy'''
        login_frame.destroy()#我这里为了测试直接销毁了

    ttk.Button(login_frame,text='注册',command=reg).grid(column=2,row=3,columnspan=2,pady=15)
    ttk.Button(login_frame,text='登录',command=cert).grid(column=4,row=3,pady=15)

    return login_frame  # 这里一定要return啊

上面这个就是我们的登录界面,运行后是这个样子的,ttk的组件就是比tk好看啊哈哈:

Tkinter实现登录成功后进入主界面_第1张图片

接下来是我们的主页面,由于我们只是测试一下这个流程,所以主页面非常简单:

'''下面就是用户登录成功了应该出现的页面'''
def index(master):
    index_frame =tk.Frame(master)
    index_frame.grid()
    text=tk.Text(index_frame)
    text.grid()
    text.insert('end','没错你登录成功,所以看到了我')

Tkinter实现登录成功后进入主界面_第2张图片

最后是重头戏,我们的程序入口:

if __name__ == "__main__":
    top = tk.Tk()
    login = login(top)
    try:#因为用户可能直接关闭主窗口,所以我们要捕捉这个错误
        top.wait_window(window=login)#等待直到login销毁,不销毁后面的语句就不执行
        index(top)
    except:
        pass
    top.mainloop()

通过以上步骤我们就完成了用户的登录操作,当然你也可以加一个忘记密码按钮,在用户注册后还需要验证是否用户名称重复,然后保存用户注册信息,如果做pc端,还可以加一个邮箱验证,用python自带的email模块就可以。大家练手可以试一试,验证的时候别忘了加上一个倒计时按钮哦!!教程我的博客里面也有!

Tkinter实现登录成功后进入主界面_第3张图片

大爷点个赞再走呗

你可能感兴趣的:(python,tkinter,windows)