基于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里disconnect UDP套接字的方法
Apr 23 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
对命令行模式与python交互模式介绍
May 12 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
Python简单基础小程序的实例代码
Apr 28 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
Python-for循环的内部机制
Jun 12 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
Python实现查询剪贴板自动匹配信息的思路详解
Jul 09 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
SONY SRF-M100的电路分析
2021/03/02 无线电
PHP数据流应用的一个简单实例
2012/09/14 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
python合并文本文件示例
2014/02/07 Python
用Python制作简单的钢琴程序的教程
2015/04/01 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
python实现简单的学生管理系统
2021/02/22 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
写给女生的道歉信
2014/01/08 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
兽医医药专业求职信
2014/07/27 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
详解vue身份认证管理和租户管理
2021/05/25 Vue.js