基于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常用内置函数总结
Feb 08 Python
Flask入门教程实例:搭建一个静态博客
Mar 27 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
Python计时相关操作详解【time,datetime】
May 26 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
python中正则表达式的使用方法
Feb 25 Python
django 实现电子支付功能的示例代码
Jul 25 Python
python构建基础的爬虫教学
Dec 23 Python
python字典改变value值方法总结
Jun 21 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 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 数组入门教程小结
2009/05/20 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python的迭代器和生成器
2015/07/29 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
pytorch打印网络结构的实例
2019/08/19 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
python异步Web框架sanic的实现
2020/04/27 Python
python help函数实例用法
2020/12/06 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
关于期中考试的反思
2014/02/02 职场文书
演讲主持词
2014/03/18 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL