使用tkinter创建如图所示的登录界面,完成三个按钮的功能。其中登录1依据指定用户名及密码判断用户是否合法,登录2依据文件ex6_Login.txt中用户列表判断用户是否合法。如果输入有误,显示错误提示,如果用户名和密码都正确,显示欢迎信息(使用tkinter的messagebox)
import tkinter as tk
from tkinter import messagebox
# 定义登录窗口类
class LoginWindow:
def __init__(self):
# 初始化窗口和布局
self.window = tk.Tk()
self.window.title("登录界面")
self.window.geometry("300x200")
# 添加账号和密码文本框
self.account_label = tk.Label(self.window, text="账户")
self.password_label = tk.Label(self.window, text="密码")
self.account_entry = tk.Entry(self.window)
self.password_entry = tk.Entry(self.window, show="*")
self.account_label.pack()
self.account_entry.pack()
self.password_label.pack()
self.password_entry.pack()
# 添加按钮
self.login1_button = tk.Button(self.window, text="登录1", command=self.login1)
self.login2_button = tk.Button(self.window, text="登录2", command=self.login2)
self.clear_button = tk.Button(self.window, text="清空", command=self.clear)
self.login1_button.pack(side="left")
self.login2_button.pack(side="left")
self.clear_button.pack(side="right")
# 运行窗口
self.window.mainloop()
# 登录1功能
def login1(self):
# 判断用户名和密码是否为空
if not self.account_entry.get() or not self.password_entry.get():
messagebox.showerror("错误提示", "用户名或密码不能为空")
return
# 判断用户名和密码是否正确
if self.account_entry.get() == "admin" and self.password_entry.get() == "123456":
messagebox.showinfo("欢迎信息", "欢迎登录,%s!" % self.account_entry.get())
else:
messagebox.showerror("错误提示", "用户名或密码不正确")
# 登录2功能
def login2(self):
# 判断用户名和密码是否为空
if not self.account_entry.get() or not self.password_entry.get():
messagebox.showerror("错误提示", "用户名或密码不能为空")
return
# 读取用户列表并验证用户名和密码是否存在于列表中
is_valid_user = False
with open("ex6_Login.txt", "r") as f:
for line in f:
account, password = line.strip().split(",")
if self.account_entry.get() == account and self.password_entry.get() == password:
is_valid_user = True
break
# 显示欢迎信息或错误提示
if is_valid_user:
messagebox.showinfo("欢迎信息", "欢迎登录,%s!" % self.account_entry.get())
else:
messagebox.showerror("错误提示", "用户名或密码不正确")
# 清空输入框
def clear(self):
self.account_entry.delete(0, tk.END)
self.password_entry.delete(0, tk.END)
# 创建登录界面对象并开启窗口消息循环
if __name__ == "__main__":
login_window = LoginWindow()
注意ex6_Login.txt文件中账号密码一行一个账号和密码之间用英文逗号隔开
如果我的回答对您有帮助请采纳,谢谢
import tkinter as tk
from tkinter import messagebox
# 按钮1的点击事件处理函数
def login1():
username = username_entry.get()
password = password_entry.get()
# 判断用户名和密码是否正确
if username == 'admin' and password == 'password':
messagebox.showinfo('登录成功', '欢迎,' + username + '!')
else:
messagebox.showerror('登录失败', '用户名或密码错误!')
# 按钮2的点击事件处理函数
def login2():
username = username_entry.get()
password = password_entry.get()
# 从文件中读取用户列表
with open('ex6_Login.txt', 'r') as file:
user_list = [line.strip().split(',') for line in file]
# 判断用户名和密码是否在用户列表中
if [username, password] in user_list:
messagebox.showinfo('登录成功', '欢迎,' + username + '!')
else:
messagebox.showerror('登录失败', '用户名或密码错误!')
# 按钮3的点击事件处理函数
def exit_app():
root.destroy()
# 创建主窗口
root = tk.Tk()
root.title('登录界面')
# 创建用户名标签、输入框和密码标签、输入框
username_label = tk.Label(root, text='用户名:')
username_label.grid(row=0, column=0, padx=5, pady=5)
username_entry = tk.Entry(root)
username_entry.grid(row=0, column=1, padx=5, pady=5)
password_label = tk.Label(root, text='密码:')
password_label.grid(row=1, column=0, padx=5, pady=5)
password_entry = tk.Entry(root, show='*')
password_entry.grid(row=1, column=1, padx=5, pady=5)
# 创建按钮1、按钮2和按钮3
login1_button = tk.Button(root, text='登录1', command=login1)
login1_button.grid(row=2, column=0, padx=5, pady=5)
login2_button = tk.Button(root, text='登录2', command=login2)
login2_button.grid(row=2, column=1, padx=5, pady=5)
exit_button = tk.Button(root, text='退出', command=exit_app)
exit_button.grid(row=2, column=2, padx=5, pady=5)
root.mainloop()
不知道你这个问题是否已经解决, 如果还没有解决的话:用于界面提示成功,失败,警告等相关信息提示框
tkinter。messagebox.FunctionName(title, message [, options])
参数:
FunctionName: 这是相应的消息框函数的名称.
title: 这是在一个消息框,标题栏显示的文本.
message: 这是要显示的文字作为消息.
options: 选项有替代的选择,你可以用它来定制一个标准的消息框。一些可以使用的选项是默认和家长。默认选项是用来指定默认的按钮,如中止,重试,或忽略在消息框中。父选项是用来指定要显示的消息框上的顶层窗口.
你可以使用以下功能之一
showinfo() 显示信息对话框
showwarning() 提示警告对话框
showerror() 显示错误对话
askquestion() 问题对话框
askokcancel() 确定还是取消对话框
askyesno() 是不是对话框
askretrycancel() 重试或者取消对话框
除了上述6个标准消息框外,还可以使用tkinter.messagebox._show函数创建其他类型 的消息框。tkinter.messagebox._show函数的控制参数如下。
default 指定消息框的按钮。
icon 指定消息框的图标。
message 指定消息框所显示的消息。
parent 指定消息框的父组件。
title 指定消息框的标题。
type 指定消息框的类型。