Как использовать вложенные функции с root .after () в Tkinter? - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь использовать вложенные функции в Tkinter с .after() в следующем коде:

from tkinter import *

a=0

def fct1() :
    global a
    global b

    b=0
    text = Label(root, text="Hey!")
    text.pack()

    def fct2() :
        global b

        text2 = Label(root, text="Yes")
        text2.pack()

        b+=1
        if b>3 :
            return
        root.after(5,fct2)

    fct2()

    a+=1
    if a>5 :
        return
    root.after(25,fct1)



root = Tk()

fct1()

root.mainloop()

С помощью этого кода я хочу отобразить одно «Привет!» в моем Tkinter root, затем запустите функцию fct2 , которая будет отображать 4 "Да", и затем повторите это еще 5 раз.

Но когда я запускаю код, 6 " Привет!" отображаются, как и ожидалось, но в каждом из них мы видим, что отображаемое число «Да» выглядит случайным, тогда как каждый раз оно должно быть равно 4. У кого-нибудь есть идеи, почему у меня такая проблема?

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