编写一个用户登陆程序,具体要求如下: ①用户界面大小为200*160像素,居中显示,如下图所示: ②用户类型包括学生用户和教师用户,缺省为学生用户。 ③“确定”按钮功能:如果用户名为空,则打印"用户名不可为空!";如果密码为空,则打印"密码不可为空!";如果是学生用户,用户名和密码都是s,登陆成功则打印"学生用户登陆成功";如果是教师用户,用户名和密码都是t;登陆成功则打印"教师用户登陆成功";如果登陆不成功,则打印"用户名不存在或者密码不正确!"。 ④“取消”按钮功能:将用户名和密码的输入框清空。 ⑤“退出”按钮功能:退出程序 ⑥窗口事件不处理,即单击关闭按钮不能退出程序。
时间: 2024-03-31 19:33:05 浏览: 85
下面是一个使用Python tkinter库编写的用户登录程序,满足您的要求:
```python
import tkinter as tk
class LoginWindow:
def __init__(self):
self.root = tk.Tk()
self.root.title("用户登录")
self.root.geometry("200x160")
self.root.resizable(False, False)
self.user_type = tk.StringVar()
self.user_type.set("s") # 默认是学生用户
self.username_label = tk.Label(self.root, text="用户名:")
self.username_label.grid(row=0, column=0, sticky=tk.E)
self.username_entry = tk.Entry(self.root)
self.username_entry.grid(row=0, column=1, padx=5)
self.password_label = tk.Label(self.root, text="密码:")
self.password_label.grid(row=1, column=0, sticky=tk.E)
self.password_entry = tk.Entry(self.root, show="*")
self.password_entry.grid(row=1, column=1, padx=5)
self.student_radio = tk.Radiobutton(
self.root, text="学生", variable=self.user_type, value="s")
self.student_radio.grid(row=2, column=0, sticky=tk.W)
self.teacher_radio = tk.Radiobutton(
self.root, text="教师", variable=self.user_type, value="t")
self.teacher_radio.grid(row=2, column=1, sticky=tk.W)
self.ok_button = tk.Button(self.root, text="确定", command=self.login)
self.ok_button.grid(row=3, column=0, pady=10)
self.cancel_button = tk.Button(self.root, text="取消", command=self.clear)
self.cancel_button.grid(row=3, column=1, pady=10)
self.quit_button = tk.Button(self.root, text="退出", command=self.quit)
self.quit_button.pack(side=tk.BOTTOM, pady=10)
self.root.mainloop()
def login(self):
username = self.username_entry.get().strip()
password = self.password_entry.get().strip()
if username == "":
tk.messagebox.showerror("错误", "用户名不可为空!")
elif password == "":
tk.messagebox.showerror("错误", "密码不可为空!")
elif self.user_type.get() == "s" and username == "s" and password == "s":
tk.messagebox.showinfo("提示", "学生用户登陆成功")
elif self.user_type.get() == "t" and username == "t" and password == "t":
tk.messagebox.showinfo("提示", "教师用户登陆成功")
else:
tk.messagebox.showerror("错误", "用户名不存在或者密码不正确!")
def clear(self):
self.username_entry.delete(0, tk.END)
self.password_entry.delete(0, tk.END)
def quit(self):
self.root.quit()
if __name__ == "__main__":
LoginWindow()
```
运行程序后,会出现一个200x160像素大小的用户登录窗口,如下图所示:
![用户登录窗口](https://i.imgur.com/4nQdNzO.png)
用户可以输入用户名和密码,选择用户类型,点击“确定”按钮进行登录,点击“取消”按钮清空输入框,点击“退出”按钮退出程序。根据用户输入的不同,程序会给出相应的提示信息。
阅读全文