在wxpython中使用Windows丰富的编辑控件时,如何修复滚动错误?

时间:2010-05-16 22:59:35

标签: python user-interface wxpython wxwidgets textctrl

当在Windows中使用带有wx.TE_RICH2选项的wx.TextCtl时,我在使用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 个答案:

答案 0 :(得分:0)

你很亲密。

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

答案 1 :(得分:0)

在wxpython中使用Windows丰富的编辑控件时,可以使用以下命令修复滚动错误:

textctrl.MoveEnd()
textctrl.WriteText(text)