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组件。

tkinter 创建登陆注册界面的更多相关文章

  1. 初学html,任务2:写一个简单的登陆/注册界面

    先在body中把最基础的标签写出来 现在页面运行出来是这样的 就是一个没有任何样式的基础界面: 接下来我们为这些标签加上样式 首先还是让页面所有元素的padding和margin都设置为0, 清除浏览 ...

  2. Android通过Http连接MySQL 实现登陆/注册(数据库+服务器+客户端)

    写在最前: 在实际开发中,相信每个项目都会有用户登陆注册功能,这个实现的方法很多,下面是我实现的方法,供大家交流. 新人发帖,万分紧张,怎么样才能装作一副经常发帖的样子不被别人看出来呢-,- ? 好了 ...

  3. Android Studio实现登陆注册功能之手机号验证

    我们平常写的登陆注册功能,就是很普通的注册一个账号,设置密码,然后登录.这次,想写一个与之前稍微不一样的登陆注册界面,于是想到了手机号验证的方式. 现在我们市面上出现的很多app,都是采用的手机号注册 ...

  4. 微信小程序常见两种登陆注册方式(一)

    普通登录注册以及用户授权登陆 普通登陆注册 概述 此功能的实现简单的借助了微信小程序的云开发,具体在哪里使用,我会标出来.对于用户名.账号.密码都做了简单的校验.主要练手功能的实现,样式只做了简单的编 ...

  5. Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证

    Python tkinter 实现简单登陆注册 最终效果 开始界面 ​ 注册 登陆 ​ 源码 login.py # encoding=utf-8 from tkinter import * from ...

  6. alertDialog创建登陆界面,判断用户输入

    alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: public boolean ...

  7. Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能

    1 环境搭建 1.1 Python安装 1.2 MySQL环境搭建 1.3安装MySQLdb  2 具体实现 2.1 登陆界面 2.2 注册界面 2.3 具体实现部分代码   1 环境搭建 1.1 P ...

  8. iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

    一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...

  9. jquery完成界面无刷新加载登陆注册

    昨天公司说官网的登陆注册每次要跳转到另一个界面,能不能做一个简单的,在界面弹出一个框框登陆,我想了想做了这么一个案例,大家来看看成不成 贴上代码,实现了在同一个弹出窗上加载了登陆注册功能!可自由点击! ...

随机推荐

  1. Java注解(2)-注解处理器(运行时|RetentionPolicy.RUNTIME)

    如果没有用来读取注解的工具,那注解将基本没有任何作用,它也不会比注释更有用.读取注解的工具叫作注解处理器.Java提供了两种方式来处理注解:第一种是利用运行时反射机制:另一种是使用Java提供的API ...

  2. 【动态规划】滚动数组的求解(C++)

    虽然接触动态规划算法已经有一段时间,给一个01背包问题,能够做到一个表格简单粗暴下去,然后求得结果,但心里总觉得对这个算法理解十分不到位,抱着对算法的热爱,网上很多大牛的算法思维实在让我佩服的五体投地 ...

  3. Java并发编程实战(chapter_2)(对象发布、不变性、设计线程安全类)

    一.发布与溢出 "发布(Publish)"一个对象的意思是指,使对象能够在当前作用于之外的代码中使用.这个"之外",尤为关键,各种出问题的地方,都是因为这个&q ...

  4. Beta总结篇

    45°炸 031502601 蔡鸿杰 031502604 陈甘霖 031502632 伍晨薇 一.项目预期进展及现实进展 项目预期计划 现实进展 Github使用 √ 日拍 (调用相机.相册) √ 足 ...

  5. 织梦cms网上复制图片不可用的解决方法

    背景描述: 织梦cms采集图片集时, 需要使用织梦cms提供的"网上复制图片"的功能, 好像我这里这个功能一直不可用, 今天下定决心研究了下源代码并进行了适当修改, 将我的修改提供 ...

  6. Apache自带 ab压测工具 Windows配置使用说明 - 随笔记录

    我们先来了解一下ab工具的概念,摘自网络: ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如ngin ...

  7. JAVA_SE基础——32.this关键字调用本类的构造方法

    黑马程序员入学blog... 也算是学习笔记. 下面我们来看段代码: package day07; class Student{ int id; //身份证 String name; //名字 pub ...

  8. typedef 使用

    1,C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字. #include<stdio.h> typedef unsigned char BYTE; int mai ...

  9. Oracle10g物理DG详细配置方法及步骤

    --测试环境:    OS:Redhat linux(64)    Primary:    IP:192.168.94.198    SID:dgdb1    Hostname:dg1    DB_U ...

  10. apigw鉴权分析(1-2)腾讯开放平台 - 鉴权分析

    一.访问入口 http://wiki.open.qq.com/wiki/%E8%85%BE%E8%AE%AF%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E7%AC%AC% ...