一、需求描述
- 有登录和注册的界面,点击注册按钮跳转到注册页面
- 登录窗口有两个按钮,登录和注册。有两个框:用户名和密码
- 注册窗口有一个按钮,确定注册。有三个框:用户名、密码、确认密码。要求密码和确认密码不一致无法完成注册,用户名存在也无法注册。注册成功后将信息存储到
usrs_info.pickle
文件内。
先看图吧:
二、实现
(1)导库
import tkinter as tk
from tkinter import messagebox
import pickle
(2)初始化主窗口(登录窗口)
创建一个窗口,并在里面添加控件
window = tk.Tk()
window.title('Welcome to sky Python')
window.geometry('450x300')
# welcome image 图片
canvas = tk.Canvas(window, height=200, width=500)
image_file = tk.PhotoImage(file='welcome.gif')
image = canvas.create_image(0, 0, anchor='nw', image=image_file)
canvas.pack(side='top')
# user information 提示文字
tk.Label(window, text='User name: ').place(x=50, y=150)
tk.Label(window, text='Password: ').place(x=50, y=190)
var_usr_name = tk.StringVar() #获取输入
var_usr_name.set('admin') #默认显示admin
entry_usr_name = tk.Entry(window, textvariable=var_usr_name) #设置输入框,并将用户输入的内容赋值给var_usr_name
entry_usr_name.place(x=160, y=150) #设置位置
var_usr_pwd = tk.StringVar()
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
entry_usr_pwd.place(x=160, y=190)
# login and sign up button
btn_login = tk.Button(window, text='Login', command=usr_login) #这里command是方法
btn_login.place(x=170, y=230)
btn_sign_up = tk.Button(window, text='Sign up', command=usr_sign_up)
btn_sign_up.place(x=270, y=230)
window.mainloop()
(3)登录功能实现
def usr_login():
usr_name = var_usr_name.get()
usr_pwd = var_usr_pwd.get()
try:
with open('usrs_info.pickle', 'rb'