desplazamiento automático de texto y barra de desplazamiento en el cuadro de texto de Python

Tengo un tkinter ‘Texto’ y ‘Barra de desplazamiento’ funcionando bien. En mi progtwig en la ventana de texto automáticamente las líneas seguirán agregando. Por lo tanto, cuando se inserta una nueva línea de texto y los datos se alcanzan fuera del límite, me gustaría que el texto y la barra de desplazamiento se desplacen automáticamente hacia abajo, para que siempre se muestre la última línea de texto. ¿Como hacer esto?

También cómo vincular el desplazamiento de la ventana de texto y la barra de desplazamiento, porque cuando lo hago, el desplazamiento por la ventana de texto no ocurre. La única manera que observé es arrastrar la barra de desplazamiento.

scrollbar = Tkinter.Scrollbar(group4.interior()) scrollbar.pack(side = 'right',fill='y') Details1 = Output() outputwindow = Tkinter.Text(group4.interior(), yscrollcommand = scrollbar.set,wrap = "word",width = 200,font = "{Times new Roman} 9") outputwindow.pack( side = 'left',fill='y') scrollbar.config( command = outputwindow.yview ) outputwindow.yview('end') outputwindow.config(yscrollcommand=scrollbar.set) outputwindow.insert('end',Details1) 

En el progtwig, la función output () enviará continuamente datos, que deberían desplazarse

Gracias por adelantado,

Puede hacer que el widget de texto se desplace a cualquier ubicación con el método see , que toma un índice.

Por ejemplo, para hacer visible la última línea del widget puede usar el índice "end" :

 outputwindow.see("end") 

Aquí hay un ejemplo completo de trabajo:

 import time try: # python 2.x import Tkinter as tk except ImportError: # python 3.x import tkinter as tk class Example(tk.Frame): def __init__(self, *args, **kwargs): tk.Frame.__init__(self, *args, **kwargs) self.text = tk.Text(self, height=6, width=40) self.vsb = tk.Scrollbar(self, orient="vertical", command=self.text.yview) self.text.configure(yscrollcommand=self.vsb.set) self.vsb.pack(side="right", fill="y") self.text.pack(side="left", fill="both", expand=True) self.add_timestamp() def add_timestamp(self): self.text.insert("end", time.ctime() + "\n") self.text.see("end") self.after(1000, self.add_timestamp) if __name__ == "__main__": root =tk.Tk() frame = Example(root) frame.pack(fill="both", expand=True) root.mainloop() 
  TextWidget.insert(tk.END, str(new_txt)) TextWidget.see(tk.END) 

Utilicé este patrón para agregar (también conocido como insert ) texto new_txt a mi ventana de salida y desplazarme ( see ) a la parte inferior ( tk.END )