Как я могу исправить ошибку прокрутки при использовании элементов управления редактирования Windows в wxpython?
При использовании wx.TextCtl с параметром wx.TE_RICH2 в Windows я получаю эту странную ошибку с автопрокруткой при использовании функции AppendText. Он прокручивается так, что весь текст находится над видимой областью, что не очень полезно.
Я попытался просто добавить вызов ScrollLines(-1) после добавления текста, который прокручивает его в правильную позицию, но это может привести к миганию окна при автоматической прокрутке. Поэтому я ищу другой способ автоматической прокрутки вниз.
Пока что мое решение состоит в том, чтобы обойти функции AppendText с автопрокруткой и реализовать мою собственную, например так:
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)
Есть ли способ лучше?
2 ответа
Ты рядом.
textctrl.SetInsertionPointEnd()
textctrl.WriteText(licence)
textctrl.SetInsertionPointEnd()
Вы можете использовать следующее для исправления ошибки прокрутки при использовании элементов управления Windows rich edit в wxpython:
textctrl.MoveEnd()
textctrl.WriteText(text)