基于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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
python super函数使用方法详解
Feb 14 Python
pytorch进行上采样的种类实例
Feb 18 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
pytorch 查看cuda 版本方式
Jun 23 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
基于Python实现股票收益率分析
Apr 02 Python
Python Flask实现进度条
May 11 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中实现记住密码下次自动登录的例子
2014/11/06 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
Seajs的学习笔记
2014/03/04 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
树结构之JavaScript
2017/01/24 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
django实现后台显示媒体文件
2020/04/07 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
linux面试题参考答案(2)
2015/12/06 面试题
回门宴父母答谢词
2014/01/26 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
团员个人总结
2015/02/26 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python