¿Cómo puedo corregir el error de desplazamiento cuando se utilizan controles de edición de Windows ricos en wxpython?
-
27-09-2019 - |
Pregunta
Cuando se utiliza wx.TextCtl con la opción wx.TE_RICH2 en las ventanas, me sale este extraño error con el desplazamiento automático cuando se utiliza la función AppendText. Se desplaza de manera que todo el texto está por encima de la zona visible, que no es un comportamiento muy útil.
Traté sólo añadir una llamada a Scrolllines (-1) después añadiendo el texto - el cual hace de desplazamiento a la posición correcta - pero esto puede llevar a la ventana de parpadear cuando se desplaza automáticamente. Así que estoy buscando otra manera de desplazarse automáticamente a la parte inferior.
Hasta ahora, mi solución es pasar por alto la appendText funciones de desplazamiento automático y poner en práctica mi propia, así:
def append_text(textctrl, text):
before_number_of_lines = textctrl.GetNumberOfLines()
textctrl.SetInsertionPointEnd()
textctrl.WriteText(text)
after_number_of_lines = textctrl.GetNumberOfLines()
textctrl.ScrollLines(before_number_of_lines - after_number_of_lines + 1)
¿Hay una mejor manera?
Solución
Estás cerca.
textctrl.SetInsertionPointEnd()
textctrl.WriteText(licence)
textctrl.SetInsertionPointEnd()
Otros consejos
Se puede utilizar el siguiente para corregir el error de desplazamiento cuando se utilizan controles de edición de Windows rica en wxpython:
textctrl.MoveEnd()
textctrl.WriteText(text)