Pergunta

Ao usar o wx.textctl com a opção WX.TE_RICH2 no Windows, recebo esse bug estranho com a rolagem automática ao usar a função ApndendText. Ele rola para que todo o texto esteja acima da área visível, o que não é um comportamento muito útil.

Tentei apenas adicionar uma chamada às linhas de rolagem (-1) depois de anexar o texto - o que a rola para a posição correta - mas isso pode levar à janela piscando quando ela se rola automaticamente. Então, estou procurando outra maneira de rolar automaticamente para o fundo.

Até agora, minha solução é ignorar as funções AppendText de rolagem automática e implementar a minha, assim:

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)

Existe uma maneira melhor?

Foi útil?

Solução

Você está perto.

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(licence)
    textctrl.SetInsertionPointEnd()

Outras dicas

Você pode usar o seguinte para corrigir o bug de rolagem ao usar os controles de edição do Windows Rich no WXPYTHON:

textctrl.MoveEnd()
textctrl.WriteText(text)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top