Commit 3f5b98a1 by BellCodeEditor

save project

parent 145fe74a
Showing with 203 additions and 97 deletions
import tkinter
import codecs
from tkinter import *
import json
from os import *
from tkinter.messagebox import *
from tkinter.scrolledtext import ScrolledText
class cmds:
def __init__(self,state):
self.state=state
self.bglist=["#FFFFFF","#101010","#FFFAE0","#50FF50","#FF5050","#5050FF"]
self.bg="#101010"
self.n=1
self.index=1
self.strindex=self.readsys()[1]
def login_to_reg(): # 登录界面转注册界面
pass
def reg_to_login(): # 注册界面转登录界面
pass
def showcode(self):
global es
text=es.get()
if self.n==1:
self.n=0
v.set(0)
es=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22)
es.insert(0,text)
es.place(x=100,y=160)
else:
self.n=1
v.set(1)
es=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22,show="·")
es.insert(0,text)
es.place(x=100,y=160)
def register(): # 注册验证
pass
def ent(self):
global e
global es
dat={e.get():es.get()}
print(json.dumps(dat),type(json.dumps(dat)))
data=codecs.open("user.txt","w",encoding="utf-8")
data.write(json.dumps(dat))
data.close()
Label(w,text="注册成功",font=("",10),bg=self.bg,fg="#50FF50").place(x=120,y=20)
w.destroy()
self.w_c()
def login(): # 登录验证
def denl(self):
global e
global es
global w
dat={e.get():es.get()}
data=codecs.open("user.txt","r",encoding="utf-8")
dat1=json.loads(data.read())
data.close()
for ind in dat1:
pass
if e.get() != ind:
Label(w,text="账号无效!",font=("",10),bg=self.bg,fg="#FF5050").place(x=120,y=20)
elif dat[e.get()] != dat1[ind]:
Label(w,text="密码错误!",font=("",10),bg=self.bg,fg="#FF5050").place(x=120,y=20)
else:
Label(w,text="登录成功!",font=("",10),bg=self.bg,fg="#50FF50").place(x=120,y=20)
w.destroy()
self.w_c()
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)
def change_color(self,text):
global es
global e
self.index+=1
if self.index > len(self.bglist)-1:
self.index=0
self.bg=self.bglist[self.index]
if self.bg=="#FFFAE0" or self.bg=="#50FF50" or self.bg=="#FFFFFF":
fg="#000000"
else:
fg="#FFFFFF"
w.config(bg=self.bg)
Label(w,text=text,font=("",30),bg=self.bg,fg=fg).place(x=20,y=15)
Label(w,text="——"*50,font=("",20),bg=self.bg,fg=fg).place(x=0,y=60)
Label(w,text="账号:",font=("",25),bg=self.bg,fg=fg).place(x=20,y=100)
e=Entry(w,font=("",25),bg=self.bg,fg=fg,width=22)
e.place(x=100,y=100)
Label(w,text="密码:",font=("",25),bg=self.bg,fg=fg).place(x=20,y=160)
es=Entry(w,font=("",25),bg=self.bg,fg=fg,width=22,show="·")
es.place(x=100,y=160)
# 登录、注册按钮
button1 = tkinter.Button(self.root, text='登录', bg="lightblue",
fg="black", width=15, command=login)
button1.place(x=60, y=220)
button1 = tkinter.Button(self.root, text='注册', bg="lightgreen",
fg="black", width=15, command=login_to_reg)
button1.place(x=230, y=220)
# 进入消息循环,监听事件
self.root.mainloop()
def zhux(self):
global w
data=codecs.open("user.txt","w",encoding="utf-8")
data.write("")
data.close()
w.destroy()
self.w_a()
def get_input(self): # 获取输入的用户名、密码
self.name = self.e1.get()
self.password = self.e2.get()
return self.name, self.password
def infocheck(self):
global vn
if vn == 0:
vn=1
showwarning("提示","信息查看已开启!")
elif vn == 1:
vn=0
showwarning("提示","信息查看已关闭!")
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 cmdecho(self):
global ce
global echo_entry
echo=system("cmd /c "+ce.get())
print(echo)
echo_entry.delete(0.0,END)
echo_entry.insert(0.0,str(echo))
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)
def readsys(self):
user=listdir("C:\\Users")
user.remove("Public")
user=user[2]
user1="C:\\Users\\"+user+"\\Desktop\\"
desktop=listdir("C:\\Users\\"+user+"\\Desktop")
return [desktop,user1]
# 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)
def w_a(self):
global w
global v
global es
global e
w=Tk()
m=Menu(w)
op=Menu(m,tearoff=False)
op.add_command(label="更改颜色",command=lambda: self.change_color("注册"))
m.add_cascade(menu=op,label="选项")
v=IntVar()
v.set(1)
w.title("用户注册")
w.resizable(False,False)
w.geometry("500x350+400+300")
w.config(bg=self.bg,menu=m)
Label(w,text="注册",font=("",30),bg=self.bg,fg="#FFFFFF").place(x=20,y=15)
Label(w,text="——"*50,font=("",20),bg=self.bg,fg="#FFFFFF").place(x=0,y=60)
Label(w,text="账号:",font=("",25),bg=self.bg,fg="#FFFFFF").place(x=20,y=100)
e=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22)
e.place(x=100,y=100)
Label(w,text="密码:",font=("",25),bg=self.bg,fg="#FFFFFF").place(x=20,y=160)
es=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22,show="·")
es.place(x=100,y=160)
br=Radiobutton(w,text="隐藏密码",variable=v,value=self.n,command=self.showcode,bg="#FFFFFF",font=("",15))
br.place(x=190,y=210)
b=Button(w,text="确认",bg="#FFFFFF",font=("",20),width=10,command=self.ent)
b.place(x=170,y=270)
w.mainloop()
# 注册界面的提交、取消按钮
button1 = tkinter.Button(self.root, text='提交', bg="lightblue",
width=15,command=register)
button1.place(x=230, y=250)
button1 = tkinter.Button(self.root, text='取消', bg="lightgreen",
width=15, command=reg_to_login)
button1.place(x=80, y=250)
# 进入消息循环
self.root.mainloop()
def w_b(self):
global w
global v
global es
global e
w=Tk()
v=IntVar()
v.set(1)
w.title("用户登录")
w.geometry("500x350+400+300")
w.resizable(False,False)
m=Menu(w)
op=Menu(m,tearoff=False)
m.add_cascade(menu=op,label="选项")
op.add_command(label="更改颜色",command=lambda: self.change_color("登录"))
op.add_command(label="注销账号",command=self.zhux)
w.config(bg=self.bg,menu=m)
Label(w,text="登录",font=("",30),bg=self.bg,fg="#FFFFFF").place(x=20,y=15)
Label(w,text="——"*50,font=("",20),bg=self.bg,fg="#FFFFFF").place(x=0,y=60)
Label(w,text="账号:",font=("",25),bg=self.bg,fg="#FFFFFF").place(x=20,y=100)
e=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22)
e.place(x=100,y=100)
Label(w,text="密码:",font=("",25),bg=self.bg,fg="#FFFFFF").place(x=20,y=160)
es=Entry(w,font=("",25),bg=self.bg,fg="#FFFFFF",width=22,show="·")
es.place(x=100,y=160)
br=Radiobutton(w,text="隐藏密码",variable=v,value=self.n,command=self.showcode,bg="#FFFFFF",font=("",15))
br.place(x=190,y=210)
b=Button(w,text="确认",bg="#FFFFFF",font=("",20),width=10,command=self.denl)
b.place(x=170,y=270)
w.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
def w_c(self):
global vn
vn=0
global w
global ce
global lsb
global echo_entry
w=Tk()
w.title("管理")
w.geometry("500x350+400+300")
w.resizable(False,False)
m=Menu(w)
op=Menu(m,tearoff=False)
m.add_cascade(menu=op,label="选项")
op.add_command(label="退出程序",command=w.quit)
op.add_checkbutton(label="信息查看",command=self.infocheck)
w.config(bg=self.bg,menu=m)
w.resizable(False,False)
Label(w,text="系统管理",font=("",20),bg="#101010",fg="#FFFFFF").place(x=20,y=15)
Label(w,text="DOS指令:",font=("",10),bg="#101010",fg="#FFFFFF").place(x=200,y=22)
ce=Entry(w,font=("",10),bg="#101010",fg="#10FF10",width=25)
ce.place(x=260,y=22)
Button(w,text="确认",font=("",10),bg="#101010",fg="#10FF10",activebackground="#101010",activeforeground="#00AA00",command=self.cmdecho).place(x=450,y=20)
lsb=Listbox(w,bg="#101010",fg="#FFFFFF",font=("",15),width=20,height=12)
user=self.readsys()[0]
for i in user:
lsb.insert(END,i)
lsb.place(x=20,y=77)
Button(w,text="打开",font=("",10),bg="#101010",fg="#10FF10",activebackground="#101010",activeforeground="#00AA00",command=self.openf).place(x=20,y=50)
Label(w,text="指令反馈:",font=("",10),bg="#101010",fg="#FFFFFF").place(x=260,y=45)
echo_entry=ScrolledText(w,bg="#101010",fg="#10FF10",width=29,height=20,font=("",10))
echo_entry.place(x=260,y=70)
w.mainloop()
app_login = My_login()
app_login.show()
\ No newline at end of file
window=cmds(1)
window.w_b()
#C:\Users\Administrator\Desktop
{"admin": "123456"}
\ No newline at end of file
{"111": "123456"}
\ 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