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
#8
You have to use the canvas.after method for calling methods of the gui, it moves the calls back into the mainloops thread.
The follwing is an code from that thread
class MainFrame(tk.Frame):
 
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        ....
        ....

    def set_label_text(self, text=''):
        self.label['text'] = text

    def blocking_code(self):
        self.after(0, self.set_label_text, 'running')
 
        for number in range(5):
            self.after(0, self.listbox_insert, number)
            print(number)
            time.sleep(1)
 
        self.after(0, self.set_label_text, ' not running')
In the method blocking_code self.after(0, self.set_label_text, 'running') is calling self.set_label_text back in the mainloops thread.
Reply


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

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Kivy] Asynchronous operation without window freezing T800 0 733 Dec-06-2024, 05:40 AM
Last Post: T800
  [Tkinter] GUI keeps freezing Fre3k 2 4,886 May-23-2020, 05:41 PM
Last Post: Fre3k
  [PyQt] How to open a program with python without freezing LavaCreeperKing 9 10,867 Aug-17-2019, 08:48 PM
Last Post: LavaCreeperKing
  Gi module window freezing problem loss 0 2,738 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