From 8e3934cb1248e6c5451a3e720d2ae0f71cf2d771 Mon Sep 17 00:00:00 2001
From: BellCodeEditor <bellcode_dev@bell.ai>
Date: Mon, 18 Jul 2022 11:14:03 +0800
Subject: [PATCH] save project

---
 bg.png       | Bin 0 -> 4578 bytes
 box.png      | Bin 0 -> 636 bytes
 code.py      | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 duck.png     | Bin 0 -> 52081 bytes
 my_client.py | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 quiz.py      |  22 ++++++++++++++++++++++
 user.txt     |   1 +
 7 files changed, 360 insertions(+)
 create mode 100644 bg.png
 create mode 100644 box.png
 create mode 100644 code.py
 create mode 100644 duck.png
 create mode 100644 my_client.py
 create mode 100644 quiz.py
 create mode 100644 user.txt

diff --git a/bg.png b/bg.png
new file mode 100644
index 0000000..9c12135
Binary files /dev/null and b/bg.png differ
diff --git a/box.png b/box.png
new file mode 100644
index 0000000..53802d1
Binary files /dev/null and b/box.png differ
diff --git a/code.py b/code.py
new file mode 100644
index 0000000..00be009
--- /dev/null
+++ b/code.py
@@ -0,0 +1,137 @@
+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():        # 登录验证
+    name, password = app_login.get_input()
+    pwd = users.get(name)
+    if pwd == password:
+        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.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()
\ No newline at end of file
diff --git a/duck.png b/duck.png
new file mode 100644
index 0000000..3882ae1
Binary files /dev/null and b/duck.png differ
diff --git a/my_client.py b/my_client.py
new file mode 100644
index 0000000..0f488ec
--- /dev/null
+++ b/my_client.py
@@ -0,0 +1,200 @@
+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=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.y = 20
+        self.val=0
+        self.v=IntVar()
+        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,variable=self.v,width=25,height=15,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,variable=self.v,width=25,height=15,borderwidth=0,command=self.remove)
+            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:
+    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
+       # 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():
+    global app     # 登录验证
+    name, password = app_login.get_input()
+    pwd = users.get(name)
+    if pwd == password:
+        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=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()
+
+
+
diff --git a/quiz.py b/quiz.py
new file mode 100644
index 0000000..4470bf1
--- /dev/null
+++ b/quiz.py
@@ -0,0 +1,22 @@
+import tkinter
+
+root = tkinter.Tk()
+root.geometry('300x340+500+200')
+canvas = tkinter.Canvas(root, width=300, height=340, bg="lightblue")
+canvas.place(x=0, y=0)
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++
+def func():
+    num = v.get()
+    print("你选择了:",num)
+
+v = tkinter.IntVar()
+rb1 = tkinter.Radiobutton(root,text='体育',value=1,variable=v,command=func)
+rb2 = tkinter.Radiobutton(root,text='美术',value=2,variable=v,command=func)
+rb3 = tkinter.Radiobutton(root,text='音乐',value=3,variable=v,command=func)
+rb4 = tkinter.Radiobutton(root,text='编程',value=4,variable=v,command=func)
+# ++++++++++++++++++++++++++++++++++++++++
+rb1.place(x=50,y=50)
+rb2.place(x=50,y=100)
+rb3.place(x=50,y=150)
+rb4.place(x=50,y=200)
+root.mainloop()
\ No newline at end of file
diff --git a/user.txt b/user.txt
new file mode 100644
index 0000000..9773d6b
--- /dev/null
+++ b/user.txt
@@ -0,0 +1 @@
+{"admin": "admin", "python": "123456", "123": "123"}
\ No newline at end of file
--
libgit2 0.25.0