学习一下莫烦Python的tkinter教程,根据教程制作了用户登录注册页。基本功能为检查登录、注册。清明上河图观看网址http://news.sohu.com/s2015/qmsht/index.shtml。

运行如下:

​​​​​​

代码如下:

# -*- coding: utf-8 -*-

"""

Created on Sun Aug 5 10:34:10 2018

@author: Administrator

"""

import tkinter as tk

import tkinter.messagebox

import pickle

#窗口

window=tk.Tk()

window.title('欢迎进入学习系统')

window.geometry('450x300')

#画布放置图片

canvas=tk.Canvas(window,height=300,width=500)

imagefile=tk.PhotoImage(file='qm.png')

image=canvas.create_image(0,0,anchor='nw',image=imagefile)

canvas.pack(side='top')

#标签 用户名密码

tk.Label(window,text='用户名:').place(x=100,y=150)

tk.Label(window,text='密码:').place(x=100,y=190)

#用户名输入框

var_usr_name=tk.StringVar()

entry_usr_name=tk.Entry(window,textvariable=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)

#登录函数

def usr_log_in():

#输入框获取用户名密码

usr_name=var_usr_name.get()

usr_pwd=var_usr_pwd.get()

#从本地字典获取用户信息,如果没有则新建本地数据库

try:

with open('usr_info.pickle','rb') as usr_file:

usrs_info=pickle.load(usr_file)

except FileNotFoundError:

with open('usr_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='欢迎您:'+usr_name)

else:

tk.messagebox.showerror(message='密码错误')

#用户名密码不能为空

elif usr_name=='' or usr_pwd=='' :

tk.messagebox.showerror(message='用户名或密码为空')

#不在数据库中弹出是否注册的框

else:

is_signup=tk.messagebox.askyesno('欢迎','您还没有注册,是否现在注册')

if is_signup:

usr_sign_up()

#注册函数

def usr_sign_up():

#确认注册时的相应函数

def signtowcg():

#获取输入框内的内容

nn=new_name.get()

np=new_pwd.get()

npf=new_pwd_confirm.get()

#本地加载已有用户信息,如果没有则已有用户信息为空

try:

with open('usr_info.pickle','rb') as usr_file:

exist_usr_info=pickle.load(usr_file)

except FileNotFoundError:

exist_usr_info={}

#检查用户名存在、密码为空、密码前后不一致

if nn in exist_usr_info:

tk.messagebox.showerror('错误','用户名已存在')

elif np =='' or nn=='':

tk.messagebox.showerror('错误','用户名或密码为空')

elif np !=npf:

tk.messagebox.showerror('错误','密码前后不一致')

#注册信息没有问题则将用户名密码写入数据库

else:

exist_usr_info[nn]=np

with open('usr_info.pickle','wb') as usr_file:

pickle.dump(exist_usr_info,usr_file)

tk.messagebox.showinfo('欢迎','注册成功')

#注册成功关闭注册框

window_sign_up.destroy()

#新建注册界面

window_sign_up=tk.Toplevel(window)

window_sign_up.geometry('350x200')

window_sign_up.title('注册')

#用户名变量及标签、输入框

new_name=tk.StringVar()

tk.Label(window_sign_up,text='用户名:').place(x=10,y=10)

tk.Entry(window_sign_up,textvariable=new_name).place(x=150,y=10)

#密码变量及标签、输入框

new_pwd=tk.StringVar()

tk.Label(window_sign_up,text='请输入密码:').place(x=10,y=50)

tk.Entry(window_sign_up,textvariable=new_pwd,show='*').place(x=150,y=50)

#重复密码变量及标签、输入框

new_pwd_confirm=tk.StringVar()

tk.Label(window_sign_up,text='请再次输入密码:').place(x=10,y=90)

tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*').place(x=150,y=90)

#确认注册按钮及位置

bt_confirm_sign_up=tk.Button(window_sign_up,text='确认注册',

command=signtowcg)

bt_confirm_sign_up.place(x=150,y=130)

#退出的函数

def usr_sign_quit():

window.destroy()

#登录 注册按钮

bt_login=tk.Button(window,text='登录',command=usr_log_in)

bt_login.place(x=140,y=230)

bt_logup=tk.Button(window,text='注册',command=usr_sign_up)

bt_logup.place(x=210,y=230)

bt_logquit=tk.Button(window,text='退出',command=usr_sign_quit)

bt_logquit.place(x=280,y=230)

#主循环

window.mainloop()

python用户登录界面tkinter_python tkinter制作用户登录界面-Go语言中文社区相关推荐

  1. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  2. php 一天只能点赞上一次,ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次-Go语言中文社区...

    笔者最近帮许多人做毕设项目,什么基于SSH的招聘系统.SSM的商城系统,基于TP的博客系统...,忙得一批.其中TP项目中有一个实现浏览量和点赞量的功能需求.所谓怎么简单怎么来,在这里说一下思路,记录 ...

  3. python管理系统web版_Python学生管理系统(web网页版)-Go语言中文社区

    前言:本项目是使用Python的Django的web框架搭建的,是一个完整的学生管理系统,功能包括基本的增删改查 项目演示图: 首页展示数据的页面(index.html) 添加学生的页面(add.ht ...

  4. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  5. pycharm写python代码_使用pycharm写python代码的一些提高效率的技巧(持续更新)-Go语言中文社区...

    这篇博客主要是用来记录自己在学习pycharm时发现的一些能够提高编写python代码效率的小技巧. 1.问题:在代码很多的情况下,调用函数时想看看函数的参数以及函数内容,按ctrl+鼠标左键虽然进入 ...

  6. 深入理解python.md_从python角度,理解进程,线程,协程.md-Go语言中文社区

    写在前面 文中有较多的内容为转载,尽量指出转载来源. 1 进程(process) 定义:进程是正在运行程序的实例. 如chrome 进程的三种状态: 就绪态 执行态 阻塞态 进程是基于计算机系统的异常 ...

  7. python绘制爱心气球_python中用turtle画爱心表白-Go语言中文社区

    python中用turtle画爱心表白 运行后的效果图: 下面的代码是在python3.7写的,代码有点长,但却语法简单易懂 代码如下: import turtle str = input('请输入表 ...

  8. python字典统计字母出现次数_第三篇 python运用字典统计字符串中字母出现的次数-Go语言中文社区...

    碎碎念 这个内容还是我日常互相种草的好友提供的素材,很基础也很实用,稍微进阶一些就可以用来统计文章中的单词出现的频率了.她在网上找的代码用了库,通过python中的字典可以很简洁的完成.(下图是她在网 ...

  9. 【PYTHON】tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失...

    tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 tkinter如何设置界面消失 当制作一个登陆界面时,登陆成功之后,如何让登陆界面本身消失 1 if que ...

最新文章

  1. edge chrome 浏览器 底色调黑 反色
  2. python 类-Python 类属性和类方法
  3. Altium Designer -- PCB 叠层设计
  4. Spring Boot——读取.properties配置文件解决方案
  5. String内存分配
  6. html %3ca id=%3e,a.markdown
  7. PopupWindow 使用详解(二) Popwindow 制作常见花哨效果
  8. 使用Spark构建简单的RESTful API
  9. Linux C 算法——查找
  10. selenium和PhantomJS的使用
  11. 互利网上数字金融典型场景: 消费金融
  12. 【转】计算机键盘功能键作用
  13. 智能优化算法:树种算法-附代码
  14. 批处理管理员运行当前路径问题
  15. 资源下载南方cass视频教程,包括文档,数据,很全的
  16. html5微场景制作,聊聊我用过的H5微场景制作工具
  17. 2020年南京大学计算机系九推面试
  18. 无套路,鬼灭之刃同人游戏
  19. Python 基于python实现ADSL宽带帐号,密码的获取及宽带拨号
  20. 符合ISO14443协议的Card

热门文章

  1. livy在交互式查询中的深度定制
  2. 惯性导航系统INS与GPS
  3. ARIS流程图复原,态崩溃了,竟然出彩了
  4. 九龙证券|市场化转融资业务试点上线首日平稳运行
  5. VIP02-RocketMQ开发模型
  6. (矩阵行列式求模)Find The Determinant III
  7. 如何正确学习Node
  8. 黑马程序员C语言基础(第一天)(linux相关操作)
  9. ①学习Android前言(关于环境搭建)
  10. CAN控制器芯片MCP2510调试记录