python多线程 (五) Tkinter

python多线程 (五) Tkinter

登录窗口

上代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/8/6 15:29
# @Author  : Running_Tiger

import tkinter as tk
from tkinter import messagebox
import pickle

window = tk.Tk()
window.title("Welcome to Running_Tiger")
window.geometry("450x300")

# welcome image
canvas = tk.Canvas(window, height=200, width=500)#创建画布
image_file = tk.PhotoImage(file='img/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)#创建一个`label`名为`User name: `置于坐标(50,150)
tk.Label(window, text='Password: ').place(x=50, y= 190)

var_usr_name = tk.StringVar()#定义变量
var_usr_name.set("jack")#变量赋值'jack'
entry_usr_name = tk.Entry(window, textvariable=var_usr_name)#创建一个`entry`,显示为变量`var_usr_name`即图中的`jack`
entry_usr_name.place(x=160, y=150)
var_usr_pwd = tk.StringVar()
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')#`show`这个参数将输入的密码变为`***`的形式
entry_usr_pwd.place(x=160, y=190)

def usr_login():
    usr_name = var_usr_name.get()
    usr_pwd = var_usr_pwd.get()
    try:
        with open('usrs_info.pickle', 'rb') as usr_file:
            usrs_info = pickle.load(usr_file)
    except FileNotFoundError:
        with open('usrs_info.pickle', 'wb') as usr_file:
            usrs_info = {'admin': 'admin'}
            pickle.dump(usrs_info, usr_file)
    if usr_name in usrs_info:
        if usr_pwd == usrs_info[usr_name]:
            tk.messagebox.showinfo(title='Welcome', message='How are you? ' + usr_name)
        else:
            tk.messagebox.showerror(message='Error, your password is wrong, try again.')
    else:
        is_sign_up = tk.messagebox.askyesno('Welcome',
                               'You have not signed up yet. Sign up today?')
        if is_sign_up:
            usr_sign_up()
def usr_sign_up():
    tk.messagebox.showinfo("user_sign_up","user sign up in development !")

# login and sign up button
btn_login = tk.Button(window, text='Login', command=usr_login)#定义一个`button`按钮,名为`Login`,触发命令为`usr_login`
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()

执行结果:

python多线程 (五) Tkinter_第1张图片

python多线程 (五) Tkinter_第2张图片
python多线程 (五) Tkinter_第3张图片

背景图:
python多线程 (五) Tkinter_第4张图片

喜欢就点赞评论+关注吧

python多线程 (五) Tkinter_第5张图片

感谢阅读,希望能帮助到大家,谢谢大家的支持!

你可能感兴趣的:(python)