Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
level3-lesson18-diy1
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
f3a7aa42
authored
May 02, 2022
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auto save
parent
145fe74a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
10 deletions
my_app.py
my_app.py
View file @
f3a7aa42
import
tkinter
from
tkinter
import
messagebox
# 从tkinter模块中导入messagebox组件
import
json
# 导入json模块
with
open
(
"user.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
# 从"user.txt"里读取用户信息
info
=
f
.
read
()
# 验证登录信息是否正确
users
=
json
.
loads
(
info
)
def
login_to_reg
():
# 登录界面转注册界面
pass
app_login
.
root
.
destroy
()
# 调用destroy()关闭窗口
global
app_reg
# 将app_reg变成全局变量
app_reg
=
My_register
()
# 调用My_register()类创建注册界面
app_reg
.
show
()
# 调用show方法打开
def
reg_to_login
():
# 注册界面转登录界面
pass
app_reg
.
root
.
destroy
()
# 调用destroy()关闭窗口
global
app_login
# 将app_login变成全局变量
app_login
=
My_login
()
# 调用My_login()创建登录界面
app_login
.
show
()
# 调用show方法打开
def
register
():
# 注册验证
pass
name
,
password1
,
password2
=
app_reg
.
get_input
()
# 创建三个变量接收返回的结果
if
name
==
""
or
password1
==
""
or
password2
==
""
:
# if判断注册信息的填写是否完整
messagebox
.
showwarning
(
"警告"
,
"请填写完整的注册资料"
)
# ⬆通过messagebox组件调用showwarning方法进行提示
elif
name
in
users
:
# 继续判断如果提交的用户名已被注册
messagebox
.
showwarning
(
"错误"
,
"用户名已经存在!"
)
# 提示
elif
password1
!=
password2
:
# 继续判断如果用户名没有被注册
messagebox
.
showwarning
(
"错误"
,
"两次密码不一致!"
)
# 提示
else
:
# 否则
users
[
name
]
=
password1
# 注册信息合格
content
=
json
.
dumps
(
users
)
# 将字典转换为json字符串
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
content
)
# 将用户信息重写入""user.txt"文本里
# 注册成功,跳往登录界面
messagebox
.
showinfo
(
"成功"
,
"注册成功"
)
# 提示注册成功
reg_to_login
()
# 调用reg_to_login()函数转入登录界面
def
login
():
# 登录验证
pass
name
,
password
=
app_login
.
get_input
()
# 用get_input()方法获取账号,密码并分别赋值
pwd
=
users
.
get
(
name
)
# 用users.get[name]方式取出正确密码
if
pwd
==
password
:
# if判断正确密码与输入密码是否相等
messagebox
.
showinfo
(
"成功"
,
"登录成功"
)
# 提示登录成功
else
:
# 否则
messagebox
.
showwarning
(
"错误"
,
"用户名或密码错误!"
)
# 登录失败提示
class
My_login
():
# 登录窗口
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
title
(
"登录窗口"
)
self
.
root
.
geometry
(
'400x300+500+300'
)
self
.
root
=
tkinter
.
Tk
()
# 创建窗口对象
self
.
root
.
title
(
"登录窗口"
)
# 设置窗口标题
self
.
root
.
geometry
(
'400x300+500+300'
)
# 设置窗口大小及显示位置
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
# True可以拉伸,False不能拉伸
def
show
(
self
):
# 登录界面的所有控件
...
...
@@ -103,5 +136,5 @@ class My_register(): # 注册窗口
self
.
password2
=
self
.
e3
.
get
()
return
self
.
name
,
self
.
password1
,
self
.
password2
app_login
=
My_login
()
app_login
.
show
()
\ No newline at end of file
app_login
=
My_login
()
# 调用My_login()类,创建登录窗口
app_login
.
show
()
# 调用show()方法打开
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment