Как мне полностью имитировать sys.stdout
в текстовом виджете tkinter, чтобы я мог использовать функцию print()
(в основном параметр end
) на полную мощность?Так что я могу использовать print("Hello World", end='\r')
для печати в текстовом виджете, где, если я распечатаю что-то еще, он перезапишет ранее напечатанный текст.
class Main:
def __init__(self):
self.master = tk.Tk()
self.output = tk.Text(self.master)
self.output.pack()
sys.stdout = self
self.master.mainloop()
def write(self, txt):
self.output.insert(tk.INSERT, str(txt))
self.output.see('end')
def flush(self):
# What do I do here?
Запуск
print("Hello World", end='\r')
print("Goodbye World", end='\r')
Дает следующеев текстовом виджете
Hello World
Goodbye World
Но я ожидаю, что вместо этого будет показано следующее
Goodbye World
В качестве дополнительного вопроса, как бы я (пере) определил функцию сброса stdout для работыс текстовым виджетом tkinter?