Как я могу исправить ошибку прокрутки при использовании элементов управления редактирования 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)
Другие вопросы по тегам