0

在 Windows 中使用 wx.TextCtl 和 wx.TE_RICH2 选项时,我在使用 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)

有没有更好的办法?

4

2 回答 2

0

你很近。

    textctrl.SetInsertionPointEnd()
    textctrl.WriteText(licence)
    textctrl.SetInsertionPointEnd()
于 2010-05-20T20:45:17.697 回答
0

在 wxpython 中使用 Windows 富编辑控件时,您可以使用以下方法修复滚动错误:

textctrl.MoveEnd()
textctrl.WriteText(text)
于 2018-09-01T12:46:49.837 回答