基于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实现子类调用父类的方法
Nov 10 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python中super的用法实例
May 28 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
django自带调试服务器的使用详解
Aug 29 Python
Python 寻找局部最高点的实现
Dec 05 Python
python3注册全局热键的实现
Mar 22 Python
浅谈Python 命令行参数argparse写入图片路径操作
Jul 12 Python
解决python便携版无法直接运行py文件的问题
Sep 01 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实现框架(一)
2006/10/09 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP 8新特性简介
2020/08/18 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
Javascript里使用Dom操作Xml
2007/01/22 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
react 生命周期实例分析
2020/05/18 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
分享一下Python数据分析常用的8款工具
2018/04/29 Python
python 以16进制打印输出的方法
2018/07/09 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android