Tkinter застревает на wait_variable () - PullRequest
0 голосов
/ 03 октября 2019

Я хочу, чтобы мое приложение tkinter получало записи в двух полях ввода, которые есть у меня при нажатии кнопки, но по какой-то причине программа всегда застревает в команде wait_variable (), даже когда кнопка нажата. Почему мой код делает это? При каждом нажатии кнопки должна выводиться информация о том, что пользователь вводил в два поля ввода.

from tkinter import *
import random
class Thing:
    def __init__(self):
        self.master = Tk(className='Chess Engine')
        self.canvas = Canvas(self.master, width=200, height=200)
        self.canvas.pack(side='top')

    def button_it(self):
        self.canvas.delete("all")
        d = Entry(self.master)
        d.pack(side='bottom')
        p = Entry(self.master)
        p.pack(side='bottom')


        self.var = IntVar()
        print("here is var: ", self.var.get())

        def do():
            self.var.set(random.randint(0, 99999))


        button = Button(master = self.master, text = 'Submit move', font = ('Helvetica', 20), command = do)
        button.pack(side='bottom')

        print("waiting for user input...", self.var.get())

        button.wait_variable(self.var)
        print("done waiting.")

        origin = p.get().strip()
        destination = d.get().strip()
        print(origin, destination)

        self.master.mainloop()


if __name__ == '__main__':
    a=Thing()
    while True:
        a.button_it()
...