Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
level3-lesson20-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
b5020233
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auto save
parent
299aed52
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
434 additions
and
24 deletions
a.py
demo.py
my_client.py
my_client1.py
user.txt
a.py
0 → 100644
View file @
b5020233
import
tkinter
from
tkinter
import
*
from
tkinter
import
messagebox
import
json
unfinished
=
[]
class
Note
():
# 便签、笔记
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
geometry
(
'300x340+1000+200'
)
self
.
root
.
title
(
"Unfinished things"
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
self
.
bg_img
=
tkinter
.
PhotoImage
(
file
=
'bg.png'
)
self
.
box
=
tkinter
.
PhotoImage
(
file
=
'box.png'
)
def
show
(
self
):
# 布置窗口界面
# 输入框
self
.
canvas
=
tkinter
.
Canvas
(
self
.
root
,
width
=
300
,
height
=
340
)
self
.
canvas
.
create_image
(
0
,
0
,
image
=
self
.
bg_img
,
anchor
=
NW
)
self
.
canvas
.
place
(
x
=
0
,
y
=
0
)
self
.
ent
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
13
),
bg
=
"light grey"
,
width
=
25
)
self
.
ent
.
place
(
x
=
10
,
y
=
310
)
# 按钮
self
.
but
=
tkinter
.
Button
(
self
.
root
,
text
=
'Add'
,
font
=
(
'宋体'
,
12
),
bg
=
"lightblue"
,
width
=
5
,
command
=
self
.
get_info
)
self
.
but
.
place
(
x
=
250
,
y
=
310
)
self
.
val
=
0
self
.
v
=
IntVar
()
self
.
y
=
20
for
info
in
unfinished
:
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
12
,
anchor
=
W
,
fill
=
'#ff9900'
)
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
width
=
45
,
height
=
15
,
value
=
self
.
val
,
variable
=
self
.
v
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=
-
25
,
y
=
self
.
y
-
13
)
self
.
val
+=
1
self
.
y
+=
30
def
remove
(
self
):
num
=
self
.
v
.
get
()
unfinished
.
pop
(
num
)
self
.
canvas
.
destroy
()
app
.
show
()
def
get_info
(
self
):
info
=
self
.
ent
.
get
()
if
info
!=
''
:
unfinished
.
append
(
info
)
self
.
ent
.
delete
(
'0'
,
END
)
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
width
=
45
,
height
=
15
,
value
=
self
.
val
,
variable
=
self
.
v
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=
-
25
,
y
=
self
.
y
-
13
)
self
.
val
+=
1
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
12
,
anchor
=
W
,
fill
=
'#ff9900'
)
self
.
y
+=
30
with
open
(
'user.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
file
:
info
=
file
.
read
()
users
=
json
.
loads
(
info
)
def
login_to_reg
():
app_login
.
root
.
destroy
()
global
app_reg
app_reg
=
My_register
()
app_reg
.
show
()
def
reg_to_login
():
app_reg
.
root
.
destroy
()
global
app_login
app_login
=
My_login
()
app_login
.
show
()
def
register
():
name
,
password1
,
password2
=
app_reg
.
get_input
()
if
name
==
''
or
password1
==
''
or
password2
==
''
:
messagebox
.
showwarning
(
'warning'
,
'massage not complete'
)
elif
name
in
users
:
messagebox
.
showwarning
(
'warning'
,
'username existed'
)
elif
password1
!=
password2
:
messagebox
.
showerror
(
'error'
,
'passwords not correct'
)
else
:
user_info
=
{}
user_info
[
'password'
]
=
password1
user_info
[
'event'
]
=
[
'bla'
,
'bla'
]
users
[
name
]
=
user_info
content
=
json
.
dumps
(
users
)
with
open
(
'user.txt'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
content
)
messagebox
.
showinfo
(
'success'
,
'successfully registered'
)
reg_to_login
()
def
login
():
global
unfinished
name
,
password
=
app_login
.
get_input
()
paw
=
users
.
get
(
name
)
if
paw
[
'password'
]
==
password
and
paw
!=
None
:
unfinished
=
users
[
name
][
'event'
]
messagebox
.
showinfo
(
'success'
,
'successfully logined'
)
app_login
.
root
.
destroy
()
global
app
app
=
Note
()
app
.
show
()
app
.
root
.
mainloop
()
else
:
messagebox
.
showwarning
(
'warning'
,
'password invalid'
)
class
My_login
():
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
title
(
"login window"
)
self
.
root
.
geometry
(
'400x300+500+300'
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
def
show
(
self
):
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'hello, please login'
,
bg
=
'green'
,
font
=
(
'宋体'
,
15
),
width
=
40
,
height
=
2
)
l
.
place
(
x
=
0
,
y
=
0
)
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'username:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
l
.
place
(
x
=
50
,
y
=
80
)
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'password:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
l
.
place
(
x
=
50
,
y
=
140
)
self
.
e1
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
14
),
bg
=
"light grey"
,
width
=
18
)
self
.
e2
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
self
.
e1
.
place
(
x
=
120
,
y
=
80
)
self
.
e2
.
place
(
x
=
120
,
y
=
140
)
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'Login'
,
bg
=
"lightblue"
,
fg
=
"black"
,
width
=
15
,
command
=
login
)
button1
.
place
(
x
=
60
,
y
=
220
)
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'Register'
,
bg
=
"lightgreen"
,
fg
=
"black"
,
width
=
15
,
command
=
login_to_reg
)
button1
.
place
(
x
=
230
,
y
=
220
)
self
.
root
.
mainloop
()
def
get_input
(
self
):
self
.
name
=
self
.
e1
.
get
()
self
.
password
=
self
.
e2
.
get
()
return
self
.
name
,
self
.
password
class
My_register
():
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
title
(
"register window"
)
self
.
root
.
geometry
(
'400x320+500+300'
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
def
show
(
self
):
self
.
e1
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
14
),
bg
=
"light grey"
,
width
=
18
)
self
.
e1
.
place
(
x
=
140
,
y
=
80
)
self
.
e2
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
self
.
e2
.
place
(
x
=
140
,
y
=
140
)
self
.
e3
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
self
.
e3
.
place
(
x
=
140
,
y
=
200
)
lab
=
tkinter
.
Label
(
self
.
root
,
text
=
'hellow, please enter your register info'
,
font
=
(
'宋体'
,
15
),
fg
=
"black"
,
width
=
40
,
height
=
2
,
bg
=
"green"
)
lab
.
place
(
x
=
0
,
y
=
0
)
lab1
=
tkinter
.
Label
(
self
.
root
,
text
=
'username:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab1
.
place
(
x
=
60
,
y
=
80
)
lab2
=
tkinter
.
Label
(
self
.
root
,
text
=
'password:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab2
.
place
(
x
=
60
,
y
=
140
)
lab3
=
tkinter
.
Label
(
self
.
root
,
text
=
'password(again):'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab3
.
place
(
x
=
28
,
y
=
200
)
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'Enter'
,
bg
=
"lightblue"
,
width
=
15
,
command
=
register
)
button1
.
place
(
x
=
230
,
y
=
250
)
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'Cancel'
,
bg
=
"lightgreen"
,
width
=
15
,
command
=
reg_to_login
)
button1
.
place
(
x
=
80
,
y
=
250
)
self
.
root
.
mainloop
()
def
get_input
(
self
):
self
.
name
=
self
.
e1
.
get
()
self
.
password1
=
self
.
e2
.
get
()
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
This diff is collapsed.
Click to expand it.
demo.py
View file @
b5020233
import
json
import
json
import
wordcloud
dict
=
{
"admin"
:
"123"
,
"python"
:
"123456"
}
dict
=
{
"admin"
:
"123"
,
"python"
:
"123456"
}
content
=
json
.
dumps
(
dict
)
#把字典转成JSON字符串
with
open
(
'user.txt'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
content
=
json
.
dumps
(
dict
)
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
file
.
write
(
content
)
file
.
write
(
content
)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
my_client.py
View file @
b5020233
...
@@ -2,6 +2,7 @@ import tkinter
...
@@ -2,6 +2,7 @@ import tkinter
from
tkinter
import
*
from
tkinter
import
*
from
tkinter
import
messagebox
from
tkinter
import
messagebox
import
json
import
json
alist
=
[
"星期六下午打篮球"
,
"星期天下午和小美一起看电影"
,
alist
=
[
"星期六下午打篮球"
,
"星期天下午和小美一起看电影"
,
"12月18日给蒂法过生日"
,
"12.24送妈妈圣诞礼物"
]
"12月18日给蒂法过生日"
,
"12.24送妈妈圣诞礼物"
]
...
@@ -12,7 +13,8 @@ class Note(): # 便签、笔记
...
@@ -12,7 +13,8 @@ class Note(): # 便签、笔记
self
.
root
.
title
(
"我的便签-待办事项"
)
self
.
root
.
title
(
"我的便签-待办事项"
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
self
.
bg_img
=
tkinter
.
PhotoImage
(
file
=
"bg.png"
)
self
.
bg_img
=
tkinter
.
PhotoImage
(
file
=
"bg.png"
)
self
.
box
=
PhotoImage
(
file
=
"box.png"
)
self
.
box
=
tkinter
.
PhotoImage
(
file
=
"box.png"
)
def
show
(
self
):
# 布置窗口界面
def
show
(
self
):
# 布置窗口界面
# 画布
# 画布
self
.
canvas
=
tkinter
.
Canvas
(
self
.
root
,
width
=
300
,
height
=
340
)
self
.
canvas
=
tkinter
.
Canvas
(
self
.
root
,
width
=
300
,
height
=
340
)
...
@@ -27,22 +29,25 @@ class Note(): # 便签、笔记
...
@@ -27,22 +29,25 @@ class Note(): # 便签、笔记
bg
=
"lightblue"
,
width
=
5
,
command
=
self
.
get_info
)
bg
=
"lightblue"
,
width
=
5
,
command
=
self
.
get_info
)
self
.
but
.
place
(
x
=
240
,
y
=
305
)
self
.
but
.
place
(
x
=
240
,
y
=
305
)
# 展示所有的文字
# 展示所有的文字
self
.
val
=
0
#单选框的value参数
self
.
v
=
IntVar
()
#设置关联变量
self
.
y
=
20
self
.
y
=
20
self
.
val
=
0
#单选框的value参数
self
.
v
=
IntVar
()
#关联变量
for
info
in
alist
:
for
info
in
alist
:
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
(
"宋体"
,
11
),
anchor
=
W
,
fill
=
'#FF9900'
)
font
=
(
"宋体"
,
11
),
anchor
=
W
,
fill
=
'#FF9900'
)
#
设置
单选框组件
#单选框组件
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
value
=
self
.
val
,
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
va
riable
=
self
.
v
,
width
=
25
,
height
=
15
,
borderwidth
=
0
,
command
=
self
.
remove
)
va
lue
=
self
.
val
,
width
=
25
,
height
=
15
,
variable
=
self
.
v
,
borderwidth
=
0
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
val
+=
1
self
.
val
+=
1
self
.
y
+=
30
self
.
y
+=
30
def
remove
(
self
):
def
remove
(
self
):
num
=
self
.
v
.
get
()
num
=
self
.
v
.
get
()
alist
.
pop
(
num
)
alist
.
pop
(
num
)
content
=
json
.
dumps
(
users
)
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
# "w"每次写入都覆盖原来的内容
file
.
write
(
content
)
self
.
canvas
.
destroy
()
self
.
canvas
.
destroy
()
app
.
show
()
app
.
show
()
...
@@ -51,20 +56,20 @@ class Note(): # 便签、笔记
...
@@ -51,20 +56,20 @@ class Note(): # 便签、笔记
self
.
ent
.
delete
(
"0"
,
END
)
self
.
ent
.
delete
(
"0"
,
END
)
if
info
!=
""
:
if
info
!=
""
:
alist
.
append
(
info
)
alist
.
append
(
info
)
content
=
json
.
dumps
(
users
)
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
# "w"每次写入都覆盖原来的内容
file
.
write
(
content
)
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
(
"宋体"
,
11
),
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
(
"宋体"
,
11
),
anchor
=
W
,
fill
=
'#FF9900'
)
anchor
=
W
,
fill
=
'#FF9900'
)
#设置单选框组件
#单选框组件
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
value
=
self
.
val
,
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
variable
=
self
.
v
,
width
=
25
,
height
=
15
,
borderwidth
=
0
,
command
=
self
.
remove
)
value
=
self
.
val
,
width
=
25
,
height
=
15
,
variable
=
self
.
v
,
borderwidth
=
0
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
val
+=
1
self
.
y
+=
30
self
.
y
+=
30
with
open
(
"user.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
with
open
(
"user.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
info
=
f
.
read
()
info
=
f
.
read
()
users
=
json
.
loads
(
info
)
users
=
json
.
loads
(
info
)
...
@@ -90,7 +95,12 @@ def register(): # 注册验证
...
@@ -90,7 +95,12 @@ def register(): # 注册验证
elif
password1
!=
password2
:
elif
password1
!=
password2
:
messagebox
.
showwarning
(
"错误"
,
"两次密码不一致!"
)
messagebox
.
showwarning
(
"错误"
,
"两次密码不一致!"
)
else
:
else
:
users
[
name
]
=
password1
user_info
=
{}
user_info
[
'password'
]
=
password1
user_info
[
'event'
]
=
[
'提示1:可以自己进行便签的添加'
,
'提示2:前面的单选框可以删除事件'
]
users
[
name
]
=
user_info
content
=
json
.
dumps
(
users
)
content
=
json
.
dumps
(
users
)
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
# "w"每次写入都覆盖原来的内容
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
# "w"每次写入都覆盖原来的内容
file
.
write
(
content
)
file
.
write
(
content
)
...
@@ -99,11 +109,12 @@ def register(): # 注册验证
...
@@ -99,11 +109,12 @@ def register(): # 注册验证
reg_to_login
()
reg_to_login
()
def
login
():
# 登录验证
def
login
():
# 登录验证
global
app
global
app
,
alist
name
,
password
=
app_login
.
get_input
()
name
,
password
=
app_login
.
get_input
()
pwd
=
users
.
get
(
name
)
pwd
=
users
.
get
(
name
)
if
pwd
==
password
:
if
pwd
[
'password'
]
==
password
and
pwd
!=
None
:
messagebox
.
showinfo
(
"成功"
,
"登录成功"
)
messagebox
.
showinfo
(
"成功"
,
"登录成功"
)
alist
=
users
[
name
][
'event'
]
app_login
.
root
.
destroy
()
app_login
.
root
.
destroy
()
app
=
Note
()
app
=
Note
()
app
.
show
()
app
.
show
()
...
@@ -203,3 +214,4 @@ class My_register(): # 注册窗口
...
@@ -203,3 +214,4 @@ class My_register(): # 注册窗口
app_login
=
My_login
()
app_login
=
My_login
()
app_login
.
show
()
app_login
.
show
()
This diff is collapsed.
Click to expand it.
my_client1.py
0 → 100644
View file @
b5020233
import
tkinter
from
tkinter
import
*
from
tkinter
import
messagebox
import
json
alist
=
[
"星期六下午打篮球"
,
"星期天下午和小美一起看电影"
,
"12月18日给蒂法过生日"
,
"12.24送妈妈圣诞礼物"
]
class
Note
():
# 便签、笔记
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
geometry
(
'300x340+1000+200'
)
self
.
root
.
title
(
"我的便签-待办事项"
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
self
.
bg_img
=
tkinter
.
PhotoImage
(
file
=
"bg.png"
)
self
.
box
=
tkinter
.
PhotoImage
(
file
=
"box.png"
)
def
show
(
self
):
# 布置窗口界面
# 画布
self
.
canvas
=
tkinter
.
Canvas
(
self
.
root
,
width
=
300
,
height
=
340
)
self
.
canvas
.
create_image
(
0
,
0
,
image
=
self
.
bg_img
,
anchor
=
NW
)
self
.
canvas
.
place
(
x
=
0
,
y
=
0
)
# 输入框
self
.
ent
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
13
),
bg
=
"snow"
,
width
=
25
)
self
.
ent
.
place
(
x
=
10
,
y
=
310
)
# 按钮
self
.
but
=
tkinter
.
Button
(
self
.
root
,
text
=
'添加'
,
font
=
(
'宋体'
,
12
),
bg
=
"lightblue"
,
width
=
5
,
command
=
self
.
get_info
)
self
.
but
.
place
(
x
=
240
,
y
=
305
)
# 展示所有的文字
self
.
val
=
0
#单选框的value参数
self
.
v
=
IntVar
()
#设置关联变量
self
.
y
=
20
for
info
in
alist
:
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
(
"宋体"
,
11
),
anchor
=
W
,
fill
=
'#FF9900'
)
#单选框组件
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
value
=
self
.
val
,
width
=
25
,
height
=
15
,
variable
=
self
.
v
,
borderwidth
=
0
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
val
+=
1
self
.
y
+=
30
def
remove
(
self
):
num
=
self
.
v
.
get
()
alist
.
pop
(
num
)
self
.
canvas
.
destroy
()
app
.
show
()
def
get_info
(
self
):
info
=
self
.
ent
.
get
()
self
.
ent
.
delete
(
"0"
,
END
)
if
info
!=
""
:
alist
.
append
(
info
)
self
.
canvas
.
create_text
(
40
,
self
.
y
,
text
=
info
,
font
=
(
"宋体"
,
11
),
anchor
=
W
,
fill
=
'#FF9900'
)
#单选框组件
self
.
select
=
tkinter
.
Radiobutton
(
self
.
canvas
,
image
=
self
.
box
,
value
=
self
.
val
,
width
=
25
,
height
=
15
,
variable
=
self
.
v
,
borderwidth
=
0
,
command
=
self
.
remove
)
self
.
select
.
place
(
x
=-
20
,
y
=
self
.
y
-
10
)
self
.
y
+=
30
app
=
Note
()
app
.
show
()
app
.
root
.
mainloop
()
import
tkinter
from
tkinter
import
messagebox
import
json
with
open
(
"user.txt"
,
"r"
,
encoding
=
"utf-8"
)
as
f
:
info
=
f
.
read
()
users
=
json
.
loads
(
info
)
def
login_to_reg
():
# 登录界面转注册界面
app_login
.
root
.
destroy
()
global
app_reg
app_reg
=
My_register
()
app_reg
.
show
()
def
reg_to_login
():
# 注册界面转登录界面
app_reg
.
root
.
destroy
()
global
app_login
app_login
=
My_login
()
app_login
.
show
()
def
register
():
# 注册验证
name
,
password1
,
password2
=
app_reg
.
get_input
()
if
name
==
""
or
password2
==
""
or
password1
==
""
:
messagebox
.
showwarning
(
"警告"
,
"请填写完整的注册资料"
)
elif
name
in
users
:
messagebox
.
showwarning
(
"错误"
,
"用户名已经存在!"
)
elif
password1
!=
password2
:
messagebox
.
showwarning
(
"错误"
,
"两次密码不一致!"
)
else
:
users
[
name
]
=
password1
content
=
json
.
dumps
(
users
)
with
open
(
"user.txt"
,
"w"
,
encoding
=
"utf-8"
)
as
file
:
# "w"每次写入都覆盖原来的内容
file
.
write
(
content
)
# 注册成功,跳往登陆界面
messagebox
.
showinfo
(
"成功"
,
"注册成功"
)
reg_to_login
()
def
login
():
# 登录验证
pass
class
My_login
():
# 登录窗口
def
__init__
(
self
):
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
):
# 登录界面的所有控件
# Label文本标签,界面提示信息
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'您好!请登录'
,
bg
=
'green'
,
font
=
(
'宋体'
,
15
),
width
=
40
,
height
=
2
)
l
.
place
(
x
=
0
,
y
=
0
)
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'用户名:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
l
.
place
(
x
=
50
,
y
=
80
)
l
=
tkinter
.
Label
(
self
.
root
,
text
=
'密 码:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
l
.
place
(
x
=
50
,
y
=
140
)
# Entry单行文本输入框:用户名、密码
self
.
e1
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
14
),
bg
=
"light grey"
,
width
=
18
)
# 显示成明文形式
self
.
e2
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
# 显示成密文形式
self
.
e1
.
place
(
x
=
120
,
y
=
80
)
self
.
e2
.
place
(
x
=
120
,
y
=
140
)
# 登录、注册按钮
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'登录'
,
bg
=
"lightblue"
,
fg
=
"black"
,
width
=
15
,
command
=
login
)
button1
.
place
(
x
=
60
,
y
=
220
)
button2
=
tkinter
.
Button
(
self
.
root
,
text
=
'注册'
,
bg
=
"lightgreen"
,
fg
=
"black"
,
width
=
15
,
command
=
login_to_reg
)
button2
.
place
(
x
=
230
,
y
=
220
)
self
.
root
.
mainloop
()
# 进入消息循环,监听事件
def
get_input
(
self
):
# 获取输入的用户名、密码
self
.
name
=
self
.
e1
.
get
()
self
.
password
=
self
.
e2
.
get
()
return
self
.
name
,
self
.
password
class
My_register
():
# 注册窗口
def
__init__
(
self
):
self
.
root
=
tkinter
.
Tk
()
self
.
root
.
title
(
"注册窗口"
)
self
.
root
.
geometry
(
'400x320+500+300'
)
self
.
root
.
resizable
(
width
=
False
,
height
=
False
)
# True可以拉伸,False不能拉伸
def
show
(
self
):
# 注册界面的所有控件
# 用户名、密码、确认密码输入框
self
.
e1
=
tkinter
.
Entry
(
self
.
root
,
show
=
None
,
font
=
(
'宋体'
,
14
),
bg
=
"light grey"
,
width
=
18
)
# 显示成明文形式
self
.
e1
.
place
(
x
=
140
,
y
=
80
)
self
.
e2
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
self
.
e2
.
place
(
x
=
140
,
y
=
140
)
self
.
e3
=
tkinter
.
Entry
(
self
.
root
,
show
=
'*'
,
font
=
(
'宋体'
,
14
),
width
=
18
)
self
.
e3
.
place
(
x
=
140
,
y
=
200
)
# Label文本标签,窗口界面文字:用户名、密码、确认密码
lab
=
tkinter
.
Label
(
self
.
root
,
text
=
'您好!请填写注册信息'
,
font
=
(
'宋体'
,
15
),
fg
=
"black"
,
width
=
40
,
height
=
2
,
bg
=
"green"
)
lab
.
place
(
x
=
0
,
y
=
0
)
lab1
=
tkinter
.
Label
(
self
.
root
,
text
=
'用户名:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab1
.
place
(
x
=
60
,
y
=
80
)
lab2
=
tkinter
.
Label
(
self
.
root
,
text
=
'密 码:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab2
.
place
(
x
=
60
,
y
=
140
)
lab3
=
tkinter
.
Label
(
self
.
root
,
text
=
'确认密码:'
,
font
=
(
"宋体"
,
12
),
fg
=
"black"
)
lab3
.
place
(
x
=
50
,
y
=
200
)
# 注册界面的提交、取消按钮
button1
=
tkinter
.
Button
(
self
.
root
,
text
=
'提交'
,
bg
=
"lightblue"
,
width
=
15
,
command
=
register
)
button1
.
place
(
x
=
230
,
y
=
250
)
button2
=
tkinter
.
Button
(
self
.
root
,
text
=
'取消'
,
bg
=
"lightgreen"
,
width
=
15
,
command
=
reg_to_login
)
button2
.
place
(
x
=
80
,
y
=
250
)
# 进入消息循环
self
.
root
.
mainloop
()
def
get_input
(
self
):
# 获取提交的注册信息
self
.
name
=
self
.
e1
.
get
()
self
.
password1
=
self
.
e2
.
get
()
self
.
password2
=
self
.
e3
.
get
()
return
self
.
name
,
self
.
password1
,
self
.
password2
app_login
=
My_login
()
app_login
.
show
()
This diff is collapsed.
Click to expand it.
user.txt
View file @
b5020233
{"admin": "123", "python": "123456"}
{"admin": "123", "python": "123456", "wang": {"password": "123", "event": ["\u63d0\u793a1\uff1a\u53ef\u4ee5\u81ea\u5df1\u8fdb\u884c\u4fbf\u7b7e\u7684\u6dfb\u52a0"]}}
\ No newline at end of file
\ No newline at end of file
This diff is collapsed.
Click to expand it.
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