python实现弹出窗口提示”已经存在“
时间: 2023-05-20 12:01:07 浏览: 99
可以使用 Python 的 tkinter 模块来实现弹出窗口提示。下面是一个简单的示例代码:
```python
import tkinter as tk
from tkinter import messagebox
# 创建主窗口
root = tk.Tk()
root.withdraw()
# 弹出提示窗口
messagebox.showinfo("提示", "已经存在")
# 关闭主窗口
root.destroy()
```
这段代码会创建一个主窗口并立即隐藏,然后弹出一个提示窗口,显示“已经存在”的消息。最后关闭主窗口。
相关问题
python语言实现GUI用户登录窗口,主窗口界面如图1、图2所示,编程实现用户注册和登录功能 (1)用户注册功能要求如下: 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。(2)用户登录功能要求如下: 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。
好的,以下是根据您的要求编写的 Python tkinter 实现的 GUI 用户登录注册页面的示例代码。请注意,该代码仅供参考,请根据您的实际需求进行修改和优化。
```python
from tkinter import *
import re
# 定义注册功能函数
def register():
# 获取用户名和密码
username = username_entry.get()
password = password_entry.get()
# 判断用户名是否符合规则
if not re.match("^[a-zA-Z][a-zA-Z0-9_]*$", username):
messagebox.showerror("错误", "用户名不符合规则,必须以字母开头,后面可以跟数字、字母或者下划线!")
return
# 判断密码是否符合规则
if not re.match("^[a-zA-Z0-9]+$", password):
messagebox.showerror("错误", "密码不符合规则,必须由数字和字母组成!")
return
# 判断用户名是否重复
with open("user.txt", "r") as f:
for line in f:
if line.strip().split(":")[0] == username:
messagebox.showerror("错误", "该用户名已存在,请重新输入!")
return
# 保存用户名和密码
with open("user.txt", "a") as f:
f.write("{}:{}\n".format(username, password))
messagebox.showinfo("提示", "注册成功!")
# 定义登录功能函数
def login():
# 获取用户名和密码
username = username_entry.get()
password = password_entry.get()
# 判断用户名和密码是否匹配
with open("user.txt", "r") as f:
for line in f:
if line.strip().split(":") == [username, password]:
messagebox.showinfo("提示", "登录成功!")
# 关闭登录窗口
root.destroy()
# 打开主窗口
main_window()
return
messagebox.showerror("错误", "用户名或密码错误!")
# 定义主窗口函数
def main_window():
# 创建主窗口
main_win = Toplevel()
main_win.title("主窗口")
# 添加标签
Label(main_win, text="欢迎进入主窗口!").pack(padx=10, pady=5)
# 创建登录窗口
root = Tk()
root.title("用户登录")
# 添加标签
Label(root, text="用户名:").grid(row=0, column=0, padx=10, pady=5)
Label(root, text="密码:").grid(row=1, column=0, padx=10, pady=5)
# 添加输入框
username_entry = Entry(root)
username_entry.grid(row=0, column=1, padx=10, pady=5)
password_entry = Entry(root, show="*")
password_entry.grid(row=1, column=1, padx=10, pady=5)
# 添加按钮
register_button = Button(root, text="注册", command=register)
register_button.grid(row=2, column=0, padx=10, pady=5)
login_button = Button(root, text="登录", command=login)
login_button.grid(row=2, column=1, padx=10, pady=5)
# 进入消息循环
root.mainloop()
```
在这个示例代码中,我们使用了 tkinter 库来创建 GUI 窗口及其中的各种组件(标签、输入框、按钮),并定义了注册和登录的功能函数。用户名和密码的校验使用了正则表达式,用户名和密码的信息保存在了当前文件夹下的文件 user.txt 中。当用户登录成功后,会弹出一个消息窗口提示“登录成功!”,并打开一个新的主窗口。若登录失败,则会弹出一个消息窗口提示“用户名或密码错误”。
用python语言分别编写下列两个程序:1. 用户登录窗口,编程实现用户注册和登录功能 (1)用户注册功能要求如下: - 输入时要进行用户名、密码校验,规则为用户名不为空且必须包含数字和字母,即以数字或者字母开头,后面可以带数字、字母或者_;用户密码不为空且仅包含数字和字母。 - 当用户名不重复时,用户名、密码信息保存在当前文件夹下的文件user.txt中,并弹出消息窗口提示“注册成功!”;否则,弹出消息窗口提示“该用户名已存在,请重新输入”。(2)用户登录功能要求如下: - 输入时要进行用户名、密码校验,当用户名、密码与文件user.txt中某一组用户账号(即用户名、密码)对应时,并弹出消息窗口提示“登录成功!”,关闭该消息窗口后再弹出子窗口;否则,弹出消息窗口提示“用户名或者密码错误”。
下面是一个简单的Python程序实现以上要求,使用了tkinter模块实现GUI界面:
```python
import tkinter as tk
import re
class LoginWindow:
def __init__(self, master):
self.master = master
self.master.title("用户登录")
self.master.geometry("300x200")
self.label_username = tk.Label(self.master, text="用户名:")
self.label_username.pack()
self.entry_username = tk.Entry(self.master)
self.entry_username.pack()
self.label_password = tk.Label(self.master, text="密码:")
self.label_password.pack()
self.entry_password = tk.Entry(self.master, show="*")
self.entry_password.pack()
self.button_login = tk.Button(self.master, text="登录", command=self.login)
self.button_login.pack(pady=10)
self.button_register = tk.Button(self.master, text="注册", command=self.register)
self.button_register.pack(pady=10)
def register(self):
username = self.entry_username.get()
password = self.entry_password.get()
if not self.validate_username(username):
tk.messagebox.showerror("错误", "用户名不符合规则")
return
elif not self.validate_password(password):
tk.messagebox.showerror("错误", "密码不符合规则")
return
with open("user.txt", "r") as f:
for line in f:
if username == line.split(",")[0]:
tk.messagebox.showerror("错误", "该用户名已存在,请重新输入")
return
with open("user.txt", "a") as f:
f.write("{},{}\n".format(username, password))
tk.messagebox.showinfo("注册成功", "注册成功!")
def login(self):
username = self.entry_username.get()
password = self.entry_password.get()
if not self.validate_username(username):
tk.messagebox.showerror("错误", "用户名不符合规则")
return
elif not self.validate_password(password):
tk.messagebox.showerror("错误", "密码不符合规则")
return
with open("user.txt", "r") as f:
for line in f:
if username == line.split(",")[0] and password == line.split(",")[1].strip():
tk.messagebox.showinfo("登录成功", "登录成功!")
self.show_child_window()
return
tk.messagebox.showerror("错误", "用户名或者密码错误")
def show_child_window(self):
child_window = tk.Toplevel()
child_window.title("子窗口")
child_window.geometry("200x100")
tk.Label(child_window, text="这是子窗口").pack()
def validate_username(self, username):
return bool(re.match(r'^[a-zA-Z0-9][a-zA-Z0-9_]*$', username))
def validate_password(self, password):
return bool(re.match(r'^[a-zA-Z0-9]+$', password))
if __name__ == "__main__":
root = tk.Tk()
app = LoginWindow(root)
root.mainloop()
```
这个程序实现了一个用户登录窗口,包含用户名和密码的输入框,以及登录和注册的按钮。当用户点击注册按钮时,程序会对输入的用户名和密码进行校验,如果符合规则并且用户名未重复,就将用户名和密码写入到user.txt文件中。当用户点击登录按钮时,程序会对输入的用户名和密码进行校验,并在user.txt文件中查找相应的用户账号,如果存在就弹出登录成功的提示框,并打开一个子窗口。如果输入的用户名或者密码错误,程序会弹出相应的错误提示框。
阅读全文