话不多说,直接代码,代码都很简单
import tkinter as tk
import sqlite3
class Database_login:
def __init__(self):
self.databese = sqlite3.connect('login.db')
self.cur = self.databese.cursor()
try:
self.cur.execute('''
CREATE TABLE IF NOT EXISTS num(
num char(20),
password char(20)
);
''')
except:
print('创建表失败')
def insert(self,num,password):
self.cur.execute("insert into num \
values ('%s','%s')"%(num,password))
self.databese.commit()
def update(self,num,password):
self.cur.execute('update num set password = %s where num = %s'%(password,num))
self.databese.commit()
def select(self,num):
self.psword = self.cur.execute('select password from num where num = %s '%(num))
for row in self.psword:
return row[0]
self.databese.commit()
def find(self,num):
self.psword = self.cur.execute('select password from num where num = %s '%(num))
if self.psword != None:
return False
class Login():
def __init__(self,master):
self.reg = tk.Tk()
self.database = Database_login()
self.loginNum = tk.Label(master,text='账号').grid(row=0,column=0,padx=10)
self.loginPs = tk.Label(master,text='密码').grid(row=1,column=0,padx=10)
self.v1 = tk.StringVar()
self.v2 = tk.StringVar()
self.entryNum = tk.Entry(master,textvariable=self.v1)
self.entryNum.grid(row=0,column=1,padx=10,pady=5)
self.entryNum.focus_set()
self.entryPs = tk.Entry(master,textvariable=self.v2,show='*')
self.entryPs.grid(row=1,column=1,padx=10,pady=5)
self.buttonSuess = tk.Button(master,text='登录',command=self.login).grid(row=3,column=0,sticky=tk.W,padx=10,pady=5)
self.buttonReg = tk.Button(master,text='注册',command=self.regi).grid(row=3,column=1,sticky=tk.E,padx=10,pady=5)
#buttonSuess = tk.Button(gui,text='退出').grid(row=3,column=2)
def login(self):
Num = self.entryNum.get()
Psword = self.entryPs.get()
RPsword = self.database.select(Num)
if Psword == RPsword:
print('login sucessful!')
else:
print('账号或密码输出错误')
def regi(self):
self.Rmain = Regi(self.reg)
class Regi():
def __init__(self,master):
self.database = Database_login()
self.loginNum = tk.Label(master,text='账号').grid(row=0,column=0,padx=10)
self.loginPs = tk.Label(master,text='密码').grid(row=1,column=0,padx=10)
self.sure = tk.Label(master,text='再次输入密码').grid(row=2,column=0,padx=10)
self.v1 = tk.StringVar()
self.v2 = tk.StringVar()
self.v3 = tk.StringVar()
self.entryNum = tk.Entry(master,textvariable=self.v1)
self.entryNum.grid(row=0,column=1,padx=10,pady=5)
self.entryPs = tk.Entry(master,textvariable=self.v2,show='*')
self.entryPs.grid(row=1,column=1,padx=10,pady=5)
self.entrySure = tk.Entry(master,textvariable=self.v3,show='*')
self.entrySure.grid(row=2,column=1,padx=10,pady=5)
self.buttonSuess = tk.Button(master,text='注册',command=self.reg).grid(row=3,column=0,sticky=tk.W,padx=10,pady=5)
self.buttonReg = tk.Button(master,text='退出',command=master.quit).grid(row=3,column=1,sticky=tk.E,padx=10,pady=5)
def reg(self):
top = tk.Toplevel()
self.num = self.entryNum.get()
self.psword = self.entryPs.get()
self.sure = self.entrySure.get()
self.Rnum = self.database.select
try:
if self.psword == self.sure:
if self.database.find(self.num):
self.database.insert(self.num,self.psword)
self.entryNum.delete(0,'end')
self.entryPs.delete(0,'end')
self.entrySure.delete(0,'end')
else:
msg = tk.Message(top,text='账号已存在',width=160)
msg.pack()
else:
msg = tk.Message(top,text='两次密码不一样',width=160)
msg.pack()
except:
msg = tk.Message(top,text='请输入账号密码',width=160)
msg.pack()
gui = tk.Tk()
main = Login(gui)
gui.mainloop()
不知道如何实现点击按钮出现另外一个界面的操作,有没有大神教下我,是不是只能用Toplevel实现,求求了