用数据库完成如下登陆界面,用户输入用户名和密码,登陆成功登陆后弹出消息框,“欢迎您,(用户名) 登陆”;如果密码输入错误,弹出对话框,显示“用户名和密码错误”,并清空输入的信息。
时间: 2023-12-05 08:04:13 浏览: 41
好的,这是一个需要用到数据库和GUI界面编程的任务。我将分步骤给出解决方案:
1. 创建数据库表格:在数据库中创建一个用户表格,包括用户名和密码两个字段。
2. 设计GUI界面:创建一个登陆界面,包括两个文本框和一个登陆按钮。
3. 编写登陆验证代码:当用户点击登陆按钮时,程序将从数据库中查询输入的用户名和密码是否匹配,如果匹配,则弹出欢迎消息框,否则弹出错误消息框并清空输入。
下面是示例代码:
1. 创建数据库表格
```python
import sqlite3
conn = sqlite3.connect('user.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users
(username TEXT PRIMARY KEY, password TEXT)''')
conn.commit()
conn.close()
```
2. 设计GUI界面
```python
import tkinter as tk
from tkinter import messagebox
import sqlite3
class LoginFrame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.master.title('登陆')
self.pack()
self.username_label = tk.Label(self, text='用户名')
self.username_label.pack()
self.username_entry = tk.Entry(self)
self.username_entry.pack()
self.password_label = tk.Label(self, text='密 码')
self.password_label.pack()
self.password_entry = tk.Entry(self, show='*')
self.password_entry.pack()
self.login_button = tk.Button(self, text='登 陆', command=self.login)
self.login_button.pack()
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
conn = sqlite3.connect('user.db')
c = conn.cursor()
c.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password))
result = c.fetchone()
if result is not None:
messagebox.showinfo('欢迎', '欢迎您,{}!'.format(username))
else:
messagebox.showerror('错误', '用户名或密码错误!')
self.username_entry.delete(0, tk.END)
self.password_entry.delete(0, tk.END)
conn.close()
root = tk.Tk()
app = LoginFrame(master=root)
app.mainloop()
```
在这个示例代码中,我们创建了一个 LoginFrame 类,继承自 tkinter 的 Frame 类,用于显示登陆界面。在 login() 方法中,我们从数据库中查询输入的用户名和密码是否匹配,如果匹配,则弹出欢迎消息框,否则弹出错误消息框并清空输入。
以上是一个简单的示例,你可以根据自己的需求进行修改。