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