Как сделать задержку кода с помощью кнопки?

У меня есть кнопка, начинающая игру.
В функции начала игры идёт 3 этапа:

  1. Проверка списка игроков
  2. Вывод роли
  3. Начало игры

Мне как-раз нужен 2-й этап.
В нём выводится виджет label с текстом Ваша роль: *роль*.
Саму роль определяет рандом. Значение записывается в переменную my_role.
Через 5 секунд этот текст должен удалится и начаться 3 этап.
Так вот. У меня 2-й этап просто пропускается, а кнопка, начинающая игру, просто находится в состоянии нажатой как-раз эти 5 секунд. Что я делаю не так?

def startGame():
    my_name = Iplayer.get()
    players = newList_players.get('1.0', 'end').split('\n')
    players.pop(-1)
    test_repeats = set(players)
    '''                ПРОВЕРКА                '''
    if Iplayer.get() == '':
        mb.showwarning('ERROR', 'Вы не указали ваш никнейм!')
    elif players == ['']:
        mb.showwarning('ERROR', 'Список не содержит ни одного игрока!.\nПожалуйста добавте минимум 3 игроков!')
    elif '' in players:
        mb.showwarning('ERROR', 'Список содержит пустые строки.\nПожалуйста удалите все пустые строки!')
    elif len(test_repeats) != len(players) or Iplayer.get() in players:
        mb.showwarning('ERROR', 'Список содержит повторяющиеся имена.\nПожалуйста удалите все повторы!')
    elif len(players) < 3:
        mb.showwarning('ERROR', """В списке недостаточно игроков!

Минимальное кол-во игроков: 3 + вы""")
    else:
        '''                2-ОЙ ЭТАП                '''
        players.insert(0, my_name)
        for i in root.winfo_children():
            i.destroy()
        #Role
        root.title('Mafia: Custom Games | test | Your Role')
        if AMD == 0: # AMD - переменная с активацией меню отладки, это не нужно по вопросу
            my_role = rc(roles) # rc - сокращение от импорта choice из библиотеки random
        else:
            active_myRole = active_role.get() # active_myRole находится в меню отладки, это не нужно по вопросу
            if active_myRole != 'Random':
                my_role = active_myRole
            else:
                my_role = rc(roles)
        label = tk.Label(text = f'Ваша роль:\n{my_role}', font = ('Comic Sans MS', 50), fg = classicFG, bg = classicBG)
        label.pack(anchor = 'center', expand = True)
        label.after(5000, label.destroy())
        '''                3-ИЙ ЭТАП                '''
        ...

Ответы (0 шт):