Python Forum
[Tkinter] How to create a delay for AI without freezing the GUI
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] How to create a delay for AI without freezing the GUI
#9
If you just want to delay something the first argument to after is how long to wait in millisecs before calling the passed in callback.
import tkinter as tk
import time

class MainFrame(tk.Frame):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.label = tk.Label(self, text='Player 1 turn')
        self.label.pack()
        self.button = tk.Button(
            self, text='Player 1 Move', command=self.on_button)
        self.button.pack(pady=15)
        self.pack()

    def on_button(self):
        print('Button clicked')
        self.label['text'] = 'player 2 thinking'
        self.button['state'] = 'disabled'
        self.after(3000, self.delayed_player_2)


    def delayed_player_2(self):
        self.label['text'] = 'player 2 moving'
        self.after(1000, self.player_2_finsihed)

    def player_2_finsihed(self):
        self.label['text'] = 'player 1 turn'
        self.button['state'] = 'normal'


if __name__ == '__main__':
    app = tk.Tk()
    main_frame = MainFrame()
    app.mainloop()
Reply


Messages In This Thread
RE: How to create a delay for AI without freezing the GUI - by Yoriz - May-04-2019, 02:32 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] GUI keeps freezing Fre3k 2 3,609 May-23-2020, 05:41 PM
Last Post: Fre3k
  [PyQt] How to open a program with python without freezing LavaCreeperKing 9 8,246 Aug-17-2019, 08:48 PM
Last Post: LavaCreeperKing
  Gi module window freezing problem loss 0 2,238 May-05-2018, 04:42 PM
Last Post: loss

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020