Как мне получить экран tkinter, который не root, чтобы исчезнуть, используя функцию уничтожения или вывода? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть система журналов и викторин, использующая 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()

Заранее спасибо и задайте любые вопросы, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...