基于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 psutil模块简单使用实例
Apr 28 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python自定义时钟类、定时任务类
Feb 22 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
使用Python发现隐藏的wifi
Mar 04 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
python 绘制国旗的示例
Sep 27 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
PHP实现时间轴函数代码
2011/10/08 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
python 将字符串转换成字典dict
2013/03/24 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
详解Python中的测试工具
2019/06/09 Python
Python 3.8 新功能全解
2019/07/25 Python
python实现飞机大战项目
2020/03/11 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
小学后勤管理制度
2014/01/14 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
长城的导游词
2015/01/30 职场文书