У меня есть система журналов и викторин, использующая tkinter GUI. Экран gui позволяет войти и зарегистрироваться. Эта информация хранится в файле Excel, сохраненном в формате CSV.
Тестовая часть выполняется на оболочке python. Что я хочу сделать, это скрыть как экран входа в систему, так и главный экран после того, как пользователь вошел в систему, а затем, если он выберет вариант выхода из системы, введя «D». Главный экран затем возвращается. Мне удалось избавиться от главного экрана с помощью функции .withdraw, и я смог вернуть его обратно с помощью .deconify. Но по какой-то причине я не могу избавиться от экрана входа в систему.
Возможно, это просто не в том месте, но я получаю ошибку атрибута, из-за которой у объекта 'функция' нет атрибута 'изъять' (я получаю то же самое для уничтожения)
Ниже мой код. Это еще не все. Но части, которые, я думаю, вам понадобится исправить.
def Destroy_menu():
main_screen.withdraw()
Login.withdraw()
def Quiz(quizfile, User):
print(User, quizfile)
global var
NumberList = [1,2,3,4,5,6,7]
Questions = True
score = 0
questions_answered = 0
while Questions == True:
try:
Number = random.choice(NumberList)
NumberList.remove(Number)
File = open(quizfile + ".csv", "r")
for line in File:
details = line.split(",")
ID_Number = int(details[0])
if ID_Number == Number:
Question = (details[1])
print("Question:",Question)
Answer_one = (details[2])
print("A):",Answer_one)
Answer_Two = (details[3])
print("B):",Answer_Two)
Answer_Three = (details[4])
print("C):",Answer_Three)
Correct = (details[8])
var = StringVar()
X = input("Answer (e.g. A): ")
print("\n")
if X == Correct:
print("Correct")
score += 1
print("Score:", score)
questions_answered = questions_answered + 1
else:
print("Incorrect, answer was:",Correct)
print("Score:", score)
print("\n")
questions_answered = questions_answered + 1
except:
File.close()
print("Quiz Completed")
print("Final Score:", score, "/ 7")
input("Press enter to continue")
Questions = False
#Writing to file
file_writer = csv.writer(open(r"E:\NEA\Quiz\Scores.csv","a",newline =""))
file_writer.writerow([User,quizfile,score,"NA"])
Quiz_choice(User)
def Quiz_choice(User):
Destroy_menu()
flag = False
print("\n" * 50)
print("Pick a quiz")
print("English Quiz (A)")
print("Maths Quiz (B)")
print("Science Quiz (C)")
print("Logout(D)")
while flag == False:
opt = input(">>>: ")
opt = opt.upper()
if opt == "A":
quizfile = "English"
Quiz(quizfile,User)
flag = True
elif opt == "B":
quizfile = "Maths"
Quiz(quizfile,User)
flag = True
elif opt == "C":
quizfile = "Science"
Quiz(quizfile,User)
flag = True
elif opt == "D":
print("Goodbye")
main_screen()
main_screen = Tk()
main_screen.deiconify()
else:
print("Invalid input. Please input a letter")
def Login():
global login_screen
Login_screen = Toplevel(main_screen)
Login_screen.title("Log in")
Login_screen.geometry ("400x234")
Label(Login_screen, text = "Please enter details below to login").pack()
Label(Login_screen, text = "").pack()
global Username_verify
global Password_verify
Username_verify = StringVar()
Password_verify = StringVar()
global Username_login_entry
global Password_login_entry
Label(Login_screen, text = "Username").pack()
Username_login_entry = Entry(Login_screen, textvariable = Username_verify)
Username_login_entry.pack()
Label(Login_screen, text = "").pack()
Label(Login_screen , text = "Password").pack()
Password_login_entry = Entry(Login_screen, textvariable = Password_verify, show = '*')
Password_login_entry.pack()
Label(Login_screen, text ="").pack()
Button(Login_screen, text = "Log in", width = 10, height = 20,command = Login_verify).pack()
Заранее спасибо и задайте любые вопросы, которые вам нужны.