创建一个窗体,窗体标题是学号+姓名;窗体有账号标签,输入账号的文本框,密码标签,输入密码的文本框,有登陆按钮,重置按钮,注册按钮,点击登陆查询login表中的记录,如果存在弹出消息框登陆成功
时间: 2023-10-08 17:05:51 浏览: 121
好的,这是一个基于Python的GUI程序,需要使用Tkinter模块来实现。以下是代码示例:
```python
import tkinter as tk
import tkinter.messagebox as mbox
import sqlite3
# 创建窗体
class LoginWindow(tk.Tk):
def __init__(self, student_id, student_name):
super().__init__()
self.student_id = student_id
self.student_name = student_name
self.title(f"{self.student_id}{self.student_name}")
self.geometry("300x200")
# 创建控件
self.lbl_account = tk.Label(self, text="账号:")
self.lbl_account.pack()
self.ent_account = tk.Entry(self)
self.ent_account.pack()
self.lbl_password = tk.Label(self, text="密码:")
self.lbl_password.pack()
self.ent_password = tk.Entry(self, show="*")
self.ent_password.pack()
self.btn_login = tk.Button(self, text="登陆", command=self.login)
self.btn_login.pack(side=tk.LEFT, padx=20)
self.btn_reset = tk.Button(self, text="重置", command=self.reset)
self.btn_reset.pack(side=tk.LEFT, padx=20)
self.btn_register = tk.Button(self, text="注册", command=self.register)
self.btn_register.pack(side=tk.LEFT, padx=20)
# 连接数据库
self.conn = sqlite3.connect("test.db")
self.cursor = self.conn.cursor()
# 登陆
def login(self):
account = self.ent_account.get()
password = self.ent_password.get()
self.cursor.execute(f"SELECT * FROM login WHERE account='{account}' AND password='{password}'")
if self.cursor.fetchone():
mbox.showinfo("登陆成功", "恭喜您,登陆成功!")
else:
mbox.showerror("登陆失败", "抱歉,登陆失败!")
# 重置
def reset(self):
self.ent_account.delete(0, tk.END)
self.ent_password.delete(0, tk.END)
# 注册
def register(self):
# TODO: 实现注册功能
mbox.showinfo("注册", "注册功能尚未实现!")
# 退出
def quit(self):
self.cursor.close()
self.conn.close()
super().quit()
# 主函数
if __name__ == "__main__":
app = LoginWindow("20210001", "张三")
app.mainloop()
```
需要注意的是,这里使用了SQLite3作为数据库,因此需要提前创建一个名为`test.db`的SQLite3数据库,并创建一个名为`login`的表,用于存储账号和密码:
```sql
CREATE TABLE login (
account VARCHAR(10) PRIMARY KEY,
password VARCHAR(10) NOT NULL
);
```
在实际使用时,需要将`20210001`和`张三`替换成对应的学号和姓名。
阅读全文