Hey I want to display the output from a subprocess into my GUI in a tk.Text Widget. I have a Code and it works minimal but it is not in realtime. How can I achieve that the output from the Terminal will be written to the Text widget in Realtime???
import tkinter as tk
import subprocess
import threading
#### classes ####
class Redirect():
    
    def __init__(self, widget, autoscroll=True):
        self.widget = widget
        self.autoscroll = autoscroll
    def write(self, textbox):
        self.widget.insert('end', textbox)
        if self.autoscroll:
            self.widget.see('end') # autoscroll
    def flush(self):
        pass
def run():
    threading.Thread(target=test).start()
def test():
    p = subprocess.Popen("python myprogram.py".split(), stdout=subprocess.PIPE, bufsize=1, text=True)
    while p.poll() is None:
        msg = p.stdout.readline().strip() # read a line from the process output
        if msg:
            print(msg)
##### Window Setting ####
fenster = tk.Tk()
fenster.title("My Program")
textbox = tk.Text(fenster)
textbox.grid()
    
scrollbar = tk.Scrollbar(fenster, orient=tk.VERTICAL)
scrollbar.grid()
textbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=textbox.yview)
start_button= tk.Button(fenster, text="Start", command=run),
start_button.grid()
    
old_stdout = sys.stdout    
sys.stdout = Redirect(textbox)
fenster.mainloop()
sys.stdout = old_stdout
 
    