基于python的Tkinter编写登陆注册界面


Posted in Python onJune 30, 2017

tkinter创建登陆注册界面,供大家参考,具体内容如下

import tkinter as tk
from tkinter import messagebox
 
#设置窗口居中
def window_info():
 ws = window.winfo_screenwidth()
 hs = window.winfo_screenheight()
 x = (ws / 2) - 200
 y = (hs / 2) - 200
 print("%d,%d" % (ws, hs))
 return x,y
 
#设置登陆窗口属性
window = tk.Tk()
window.title('欢迎使用停车场收费系统')
a,b=window_info()
window.geometry("450x300+%d+%d"%(a,b))
 
#登陆界面的信息
tk.Label(window,text="停车场收费系统",font=("宋体",32)).place(x=80,y=50)
tk.Label(window,text="账号:").place(x=120,y=150)
tk.Label(window,text="密码:").place(x=120,y=190)
#显示输入框
var_usr_name = tk.StringVar()
#显示默认账号
var_usr_name.set('1400370101')
entry_usr_name=tk.Entry(window,textvariable=var_usr_name)
entry_usr_name.place(x=190,y=150)
var_usr_pwd = tk.StringVar()
#设置输入密码后显示*号
entry_usr_pwd = tk.Entry(window,textvariable=var_usr_pwd,show='*')
entry_usr_pwd.place(x=190,y=190)
 
#登陆函数
def usr_login():
 #获取输入的账号密码
 usr_name = var_usr_name.get()
 usr_pwd = var_usr_pwd.get()
 #获取存储的账户信息,此处使用的是数据库,调用数据库查询函数,也可以使用其他方式,如文件等
 dicts = SQL.load('login')
 print(dicts)
 bool = False
 for row in dicts:
 print(row.get("name"))
 if usr_name == row["name"]:
  bool = True
  pwd = row["password"]
  print(row)
 if bool == True:
 if usr_pwd == pwd:
  tk.messagebox.showinfo(title='Welcome', message='How are you?' +usr_name)
  mainwindow()
 else:
  tk.messagebox.showerror(message='对不起,输入错误,请重试!')
 else:
 is_sign_up = tk.messagebox.askyesno('Welcome', '您还没有注册,是否现在注册呢?')
 if is_sign_up:
  usr_sign_up()
#注册账号
def usr_sign_up():
 def sign_to_Pyhon():
 np = new_pwd.get()
 npc = new_pwd_confirm.get()
 nn = new_name.get()
 
 dicts = SQL.load('login')
 print(dicts)
 bool = False
 for row in dicts:
  if nn == row["name"]:
  bool = True
  print(row)
 if np!=npc:
  tk.messagebox.showerror('对不起','两次密码输入不一致!')
 elif bool:
  tk.messagebox.showerror(('对不起','此账号已经存在!'))
 else:
  try:
  SQL.insert_login(str(nn),str(np))
  tk.messagebox.showinfo('Welcome','您已经注册成功!')
  except:
  tk.messagebox.showerror(('注册失败!'))
  window_sign_up.destroy()
 #创建top窗口作为注册窗口
 window_sign_up = tk.Toplevel(window)
 window_sign_up.geometry('350x200')
 window_sign_up.title('注册')
 
 new_name = tk.StringVar()
 new_name.set('1400370115')
 tk.Label(window_sign_up,text='账号:').place(x=80,y=10)
 entry_new_name = tk.Entry(window_sign_up,textvariable=new_name)
 entry_new_name.place(x=150,y=10)
 
 new_pwd = tk.StringVar()
 tk.Label(window_sign_up, text='密码:').place(x=80, y=50)
 entry_usr_pwd = tk.Entry(window_sign_up,textvariable=new_pwd,show='*')
 entry_usr_pwd.place(x=150, y=50)
 
 new_pwd_confirm = tk.StringVar()
 tk.Label(window_sign_up,text='再次输入:').place(x=80,y=90)
 entry_usr_pwd_again = tk.Entry(window_sign_up,textvariable=new_pwd_confirm,show='*')
 entry_usr_pwd_again.place(x=150, y=90)
 
 btn_again_sign_up = tk.Button(window_sign_up,text='注册',command=sign_to_Pyhon)
 btn_again_sign_up.place(x=160,y=130)
 
#登陆和注册按钮
btn_login = tk.Button(window,text="登陆",command=usr_login)
btn_login.place(x=170,y=230)
btn_sign_up = tk.Button(window,text="注册",command=usr_sign_up)
btn_sign_up.place(x=270,y=230)
 
window.mainloop()

这是我写的登陆注册界面,使用tkinter,可以实现简单的登陆和注册账号,使用的主要是Label,Entry和Button组件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
Python 实现随机数详解及实例代码
Apr 15 Python
Python进阶之尾递归的用法实例
Jan 31 Python
Python对象与引用的介绍
Jan 24 Python
PyQt5根据控件Id获取控件对象的方法
Jun 25 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python 中判断列表是否为空的方法
Nov 24 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 Python
总结Python变量的相关知识
Jun 28 Python
Python中tqdm的使用和例子
Sep 23 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 #Python
python实现的二叉树定义与遍历算法实例
Jun 30 #Python
Python使用openpyxl读写excel文件的方法
Jun 30 #Python
python中关于for循环的碎碎念
Jun 30 #Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 #Python
python实现给微信公众号发送消息的方法
Jun 30 #Python
Python信息抽取之乱码解决办法
Jun 29 #Python
You might like
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python语言描述最大连续子序列和
2017/12/05 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python实现事件驱动
2018/11/21 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
HTML5标签大全
2016/11/23 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
英文慰问信范文
2015/03/24 职场文书
《山中访友》教学反思
2016/02/24 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书