基于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 相关文章推荐
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
利用python写个下载teahour音频的小脚本
May 08 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
python定向爬取淘宝商品价格
Feb 27 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
Python实现12306火车票抢票系统
Jul 04 Python
Python常用库大全及简要说明
Jan 17 Python
怎么快速自学python
Jun 22 Python
Keras模型转成tensorflow的.pb操作
Jul 06 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
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
node 版本切换的实现
2020/02/02 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
Python中operator模块的操作符使用示例总结
2016/06/28 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python正则表达式指南 推荐
2018/10/09 Python
python实现桌面壁纸切换功能
2019/01/21 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
市场部规章制度
2014/01/24 职场文书
会计试用期自我评价
2014/09/19 职场文书
技能培训通讯稿
2015/07/18 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python