我想要出现的顺序是
先出现用户登录

然后输入用户名和密码,登陆成功

然后在选择,之后出现

然后我有两个.py文件
第一个是a.py
import tkinter as tk
from tkinter import messagebox
import user_password
# 定义全局变量的用户密码字典
userpass = {}
# 读取文件存入字典
def readfile():
global userpass
temp = []
with open('user', 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
key, value = line.split()
userpass[key] = value
def root_1(root):
# 用户名
username_label = tk.Label(root, text="用户名")
username_label.grid(row=0, column=0, padx=10, pady=10)
username_entry = tk.Entry(root, width=40) # 设置宽度为20个字符
username_entry.grid(row=0, column=1, padx=0, pady=10)
# 密码
password_label = tk.Label(root, text="密 码")
password_label.grid(row=1, column=0, padx=10, pady=10)
password_entry = tk.Entry(root, show="*", width=40) # 设置宽度为20个字符
password_entry.grid(row=1, column=1, padx=10, pady=10)
# 取消按钮
cancel_button = tk.Button(root, text="取消", command=on_cancel)
cancel_button['width'] = 15
cancel_button.grid(row=2, column=0, padx=10, pady=10, sticky="w")
# 登录按钮
login_button = tk.Button(root, text="登录", command=lambda: on_login(username_entry, password_entry))
login_button['width'] = 15 # 设置按钮宽度
login_button.grid(row=2, column=1, padx=10, pady=10, sticky="e")
root.mainloop()
# 登录
def on_login(username_entry, password_entry):
global userpass
username = username_entry.get()
password = password_entry.get()
if username in userpass and userpass[username] == password:
messagebox.showinfo("提示", "登录成功")
root.destroy()
show_1()
else:
messagebox.showerror("错误", "用户名或密码错误")
def show_1():
show=tk.Toplevel(root)
show.title("超市关系系统目录")
cancel_button = tk.Button(root, text='用户管理', command=user_password.root_2(user_password.root2))
cancel_button['width'] = 15
cancel_button.grid(row=2, column=0, padx=10, pady=10, sticky="w")
show.mainloop()
# 取消按钮
def on_cancel():
root.quit()
root = tk.Tk()
root.title("超市管理系统登录")
root.geometry("500x150+650+80") # 创建窗口大小
readfile()
print(userpass)
root_1(root)
以及代码块user_password.py
import tkinter as tk
from tkinter import messagebox
# 定义全局变量的用户密码字典
userpass = {}
root2 = tk.Tk()
root2.title("密码管理")
root2.geometry("300x200+650+80")
# 读取文件存入字典
def readfile():
global userpass
temp = []
with open('user', 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
key, value = line.split()
userpass[key] = value
# 添加新的管理人员
def add_user():
global userpass
print(userpass)
add = tk.Toplevel(root2)
add.title("添加用户")
add.geometry("400x150+650+80")
#用户名
username_label = tk.Label(add, text="用户名")
username_label.grid(row=0, column=0, padx=10, pady=10)
username_entry = tk.Entry(add, width=40) # 设置宽度为40个字符
username_entry.grid(row=0, column=1, padx=0, pady=10)
# 密码
password_label = tk.Label(add, text="密 码")
password_label.grid(row=1, column=0, padx=10, pady=10)
password_entry = tk.Entry(add, width=40)
password_entry.grid(row=1, column=1, padx=10, pady=10)
#用来点击提交后,对用户输入的读取
def submit_d():
username = username_entry.get()
password = password_entry.get()
if username in userpass:
messagebox.showerror("错误", "用户名重复,请重新输入")
add.destroy()
add_user()
elif username and password:
userpass[username] = password
messagebox.showinfo("提示", "用户添加成功")
add.destroy()
else:
messagebox.showerror("错误", "用户名或密码不能为空")
add.destroy()
add_user()
# 提交按钮
submit = tk.Button(add, text="提交", command=submit_d)
submit['width'] = 15
submit.grid(row=2, column=1, padx=10, pady=10, sticky="e")
add.mainloop()
root2.destroy() # 关闭根窗口
print(userpass)
#修改密码
def change_user():
global userpass
# 用户名
change = tk.Toplevel(root2)
change.title("修改密码")
change.geometry("400x200+650+80")
username_label = tk.Label(change, text="用户名")
username_label.grid(row=0, column=0, padx=10, pady=10)
username_entry = tk.Entry(change, width=40) # 设置宽度为40个字符
username_entry.grid(row=0, column=1, padx=0, pady=10)
# 密码
o_password_label = tk.Label(change, text="旧密码")
o_password_label.grid(row=1, column=0, padx=10, pady=10)
o_password_entry = tk.Entry(change, width=40)
o_password_entry.grid(row=1, column=1, padx=10, pady=10)
n_password_label = tk.Label(change, text="新密码")
n_password_label.grid(row=2, column=0, padx=10, pady=10)
n_password_entry = tk.Entry(change, width=40)
n_password_entry.grid(row=2, column=1, padx=10, pady=10)
# 用来点击提交后,对用户输入的读取
def submit_d():
username = username_entry.get()
n_password = n_password_entry.get()
o_password = o_password_entry.get()
if username not in userpass:
messagebox.showerror("错误", "用户名无效")
change_user()
elif username and n_password and o_password:
if userpass[username] == o_password:
userpass[username] = n_password
messagebox.showinfo("提示", "用户密码修改成功")
change.destroy()
else:
messagebox.showerror("错误", "旧密码不正确")
change.destroy()
change_user()
else:
messagebox.showerror("错误", "用户名或密码不能为空")
change.destroy()
change_user()
# 提交按钮
submit = tk.Button(change, text="提交", command=submit_d)
submit['width'] = 15
submit.grid(row=3, column=1, padx=10, pady=10, sticky="e")
change.mainloop()
root2.destroy()
#取消按钮
def on_cancel():
global userpass
root2.quit()
with open('user', 'w') as file:
for key, value in userpass.items():
file.write(f"{key} {value}\n")
def root_2(root):
# 为了让下面两个按钮居中而设置
label = tk.Label(text=' ')
label.grid(row=1, column=0, padx=10, pady=15)
adduser = tk.Button(root, text='添加新用户', command=add_user)
adduser['width'] = 15
adduser.grid(row=1, column=1, padx=10, pady=15)
changeuser = tk.Button(root, text='修改密码', command=change_user)
changeuser['width'] = 15
changeuser.grid(row=2, column=1, padx=10, pady=15)
break_2 = tk.Button(root, text='退出', command=on_cancel)
break_2['width'] = 15
break_2.grid(row=3, column=1, padx=10, pady=15)
root.mainloop()
readfile()
# 创建一个根界面:密码管理界面
root_2(root2)
但是我现在运行a.py
现在出现的顺序是

把这个叉掉之后,才会出现原本该第一个出现,之后显示登陆成功之后就直接结束程序了,到底该怎么改正呀