Как заставить мою программу обновлять счетчик только при "count = count + 1", а не при каждом обновлении окна tkinter? - PullRequest
0 голосов
/ 11 июля 2019

Мне нужно, чтобы пользователь ввел несколько строк в графический интерфейс TKinter.Сначала пользователь вводит количество строк, которые нужно ввести, а затем строки.

У меня есть счетчик, который запускает другую функцию, когда пользователь ввел все строки, однако окна зациклены, и я не знаю, где поставить счетчик.

Я нахожусьЗапуск питона 3.7.Я попытался вставить его в функцию read(), но он зацикливает окна tkinter и сразу же достигает предела счетчика.

def read():
    v2 = StringVar()
    v2.set("")
    L3 = Label(Win, textvariable=v2,fg="black",bg="light blue",font=("Agency FB", 15)).pack()
    try:
        number = e.get()
        number = int(number)
        if number <=2:
            v2.set("You need to input more than 2 lines")
        else:

            def append():
                g = b.get()
                lines = []
                lines.append(g)
                if count == number:
                    print("done")

            clearwin()
            v2 = StringVar()
            v2.set("")
            L3 = Label(Win, text = "Entering line number " + str(count) ,fg="black",bg="light blue",font=("Agency FB", 15)).pack()
            b = Entry(Win,width = "50",justify = "center",bd = "5")
            b.pack()
            b.focus_set()
            E_B = Button(Win,width = "10",command = append, height = "1", text = "Enter", fg = "black", bg = "White", font = ("Agency FB",16)).pack()
            back = Button(Win,width = "10",command = enter_rle, height = "1", text = "Back", fg = "black", bg = "White", font = ("Agency FB",16)).pack()

    except(ValueError):
        v2.set("Error")
        print("error")
clearwin()
v2 = StringVar()
v2.set("")
L3 = Label(Win, text = "Please enter number of RLE line you would like to input",fg="black",bg="light blue",font=("Agency FB", 15)).pack()
e = Entry(Win,width = "50",justify = "center",bd = "5")
e.pack()
E_B = Button(Win,width = "10",command = read, height = "1", text = "Enter", fg = "black", bg = "White", font = ("Agency FB",16)).pack()
back = Button(Win,width = "10",command = MainW, height = "1", text = "Back", fg = "black", bg = "White", font = ("Agency FB",16)).pack()
rep = Label(Win, textvariable=v2,fg="black",bg="light blue",font=("Courier", 8)).pack()
e.focus_set()

Я хочу запустить другую функцию, когда счетчик достигнет "числа"

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