如何修复在wxpython中使用Windows富文本编辑控制时的滚动bug?

0 投票
2 回答
1001 浏览
提问于 2025-04-15 22:46

在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)

有没有更好的方法呢?

2 个回答

0

你可以使用下面的代码来修复在wxpython中使用Windows富文本编辑控件时出现的滚动问题:

textctrl.MoveEnd()
textctrl.WriteText(text)
1

你快到了。

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

撰写回答