用tkinter写一个登陆注册桌面应用程序
时间: 2023-09-30 10:13:05 浏览: 96
好的,以下是一个简单的登陆注册桌面应用程序。该程序使用tkinter库实现GUI界面,使用sqlite3库实现用户信息的存储。
```python
import tkinter as tk
import sqlite3
# 连接数据库
conn = sqlite3.connect('user.db')
cursor = conn.cursor()
# 创建用户表
cursor.execute('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR(20), password VARCHAR(20))')
conn.commit()
class LoginRegisterApp:
def __init__(self, master):
self.master = master
self.master.title('登陆注册应用程序')
self.master.geometry('300x200')
# 登陆页面
self.login_frame = tk.Frame(self.master)
self.login_frame.pack()
tk.Label(self.login_frame, text='用户名:').grid(row=0, column=0)
self.login_username_entry = tk.Entry(self.login_frame)
self.login_username_entry.grid(row=0, column=1)
tk.Label(self.login_frame, text='密码:').grid(row=1, column=0)
self.login_password_entry = tk.Entry(self.login_frame, show='*')
self.login_password_entry.grid(row=1, column=1)
tk.Button(self.login_frame, text='登陆', command=self.login).grid(row=2, column=1)
# 注册页面
self.register_frame = tk.Frame(self.master)
tk.Label(self.register_frame, text='用户名:').grid(row=0, column=0)
self.register_username_entry = tk.Entry(self.register_frame)
self.register_username_entry.grid(row=0, column=1)
tk.Label(self.register_frame, text='密码:').grid(row=1, column=0)
self.register_password_entry = tk.Entry(self.register_frame, show='*')
self.register_password_entry.grid(row=1, column=1)
tk.Button(self.register_frame, text='注册', command=self.register).grid(row=2, column=1)
def login(self):
# 获取用户输入的用户名和密码
username = self.login_username_entry.get()
password = self.login_password_entry.get()
# 查询用户信息
cursor.execute('SELECT * FROM user WHERE username=? AND password=?', (username, password))
user = cursor.fetchone()
if user:
# 登陆成功,显示欢迎信息
tk.messagebox.showinfo('登陆成功', f'欢迎,{username}!')
else:
# 登陆失败,显示错误信息
tk.messagebox.showerror('登陆失败', '用户名或密码错误!')
def register(self):
# 获取用户输入的用户名和密码
username = self.register_username_entry.get()
password = self.register_password_entry.get()
# 插入用户信息
cursor.execute('INSERT INTO user (username, password) VALUES (?, ?)', (username, password))
conn.commit()
# 注册成功,清空输入框
self.register_username_entry.delete(0, tk.END)
self.register_password_entry.delete(0, tk.END)
tk.messagebox.showinfo('注册成功', '恭喜,注册成功!')
if __name__ == '__main__':
root = tk.Tk()
app = LoginRegisterApp(root)
root.mainloop()
```
该程序包含两个页面,一个登陆页面和一个注册页面。用户可以输入用户名和密码进行登陆,或者输入用户名和密码进行注册。程序会将用户信息存储到数据库中,下次登陆时可以查询数据库中是否存在该用户。请注意,该程序为示例程序,仅供参考,实际应用中需要进行更多的安全性检查和用户体验优化。
阅读全文