基于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的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
怎样使用Python脚本日志功能
Aug 14 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
Laravel+Dingo/Api 自定义响应的实现
Feb 17 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
Python logging日志库空间不足问题解决
Sep 14 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
FCKeditor的安装(PHP)
2007/01/13 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
javascript call和apply方法
2008/11/24 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
React中的render何时执行过程
2018/04/13 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
python网络编程实例简析
2014/09/26 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python 字符串与数字输出方法
2018/07/16 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
中学生班主任评语
2014/01/30 职场文书
保护环境标语
2014/06/09 职场文书
商场促销活动总结
2014/07/10 职场文书
python单元测试之pytest的使用
2021/06/07 Python
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server