Commit d61e4f1f by BellCodeEditor

save project

parent fa92bb13
Showing with 161 additions and 12 deletions
import tkinter
from tkinter import *
alist = ["星期六下午打篮球", "星期天下午和小美一起看电影",
"12月18日给蒂法过生日","12.24送妈妈圣诞礼物"]
from tkinter import messagebox
import json
class Note(): # 便签、笔记
y = 0
......@@ -15,15 +15,18 @@ class Note(): # 便签、笔记
def rb(self):
num=self.v.get()
alist.pop(num)
content = json.dumps(users)
with open("user.txt", "w", encoding="utf-8") as file: # "w"每次写入都覆盖原来的内容
file.write(content)
self.canvas.destroy()
app.show()
def show(self): # 布置窗口界面
self.canvas = tkinter.Canvas(self.root,width=300,height=340,bg='blue')
self.canvas = tkinter.Canvas(self.root,width=300,height=340,bg='white')
self.canvas.place(x=0,y=0)
self.canvas.create_image(0,0,image=self.bg_img,anchor=NW)
# 输入框
self.ent = tkinter.Entry(self.root, show=None,
font=('宋体', 13), fg='grey',bg="snow", width=25)
self.ent = tkinter.Entry(self.root, show='6',
font=('宋体', 13), fg='black',bg="snow", width=25)
self.ent.place(x=10, y=310)
# 按钮
self.but = tkinter.Button(self.root,text='添加',font=('宋体',12),
......@@ -33,7 +36,7 @@ class Note(): # 便签、笔记
self.v = tkinter.IntVar()
self.val = 0
for info in alist:
self.canvas.create_text(40,self.y,text=info,font=('宋体',11),anchor=W,fill='#3300cc')
self.canvas.create_text(40,self.y,text=info,font=('宋体',11),anchor=W,fill='#FF9900')
self.rb1 = tkinter.Radiobutton(self.canvas,image=self.box,text=info,
value=self.val,variable=self.v,command=self.rb)
self.rb1.place(x=-30,y=self.y-20)
......@@ -43,6 +46,9 @@ class Note(): # 便签、笔记
info=self.ent.get()
if 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),anchor=W,fill='#3300cc')
self.rb1 = tkinter.Radiobutton(self.canvas,image=self.box,text=info,
value=self.val,variable=self.v,command=self.rb)
......@@ -51,6 +57,150 @@ class Note(): # 便签、笔记
self.y+=30
self.ent.delete("0",END)
app = Note()
app.show()
app.root.mainloop()
\ No newline at end of file
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:
user_info={}
user_info['password']=password1
user_info['event']=[
'提示1:没有提示',
'提示2:也没有提示'
]
users[name] = user_info
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(): # 登录验证
global app,alist
name, password = app_login.get_input()
pwd = users.get(name)
print(pwd)
if pwd['password'] == password:
alist=users[name]['event']
app_login.root.destroy()
app = Note()
app.show()
app.root.mainloop()
else:
messagebox.showwarning("错误", "用户名或密码错误!")
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='6', font=('宋体', 14),
bg="light grey", width=18) # 显示成明文形式
self.e2 = tkinter.Entry(self.root, show='6', 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='6', font=('宋体', 14),
bg="light grey", width=18) # 显示成明文形式
self.e1.place(x=140, y=80)
self.e2 = tkinter.Entry(self.root, show='6', font=('宋体', 14),
width=18)
self.e2.place(x=140, y=140)
self.e3 = tkinter.Entry(self.root, show='6', 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()
{"admin": "admin", "python": "123456"}
\ No newline at end of file
{"admin": "admin", "python": "123456", "11111": "1111", "111": "111", "1": "12", "2": {"possward": "2", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "\u00b7": {"possward": "\u00b7", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "12": {"possward": "12", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "11": {"possward": "11", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "123": {"passward": "123", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "122": {"password": "122", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "1111": {"password": "11", "event": {"\u63d0\u793a1": "\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2": "\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210"}}, "Q": {"password": "111", "event": ["\u63d0\u793a1:\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2:\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210", "11", "11"]}, "1223": {"password": "123", "event": []}, "###": {"password": "###", "event": ["\u63d0\u793a1:\u53ef\u4ee5\u4ece\u8f93\u5165\u6846\u6dfb\u52a0\u65b0\u4efb\u52a1", "\u63d0\u793a2:\u70b9\u51fb\u524d\u9762\u9009\u62e9\u6846\u8868\u793a\u4efb\u52a1\u5b8c\u6210", "6"]}, "####": {"password": "###", "event": ["\u63d0\u793a1:", "\u63d0\u793a2:"]}, "ttt1144": {"password": "123456", "event": ["1111111", "111111"]}, "F1": {"password": "f1", "event": []}}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment