如何修复在wxpython中使用Windows富文本编辑控制时的滚动bug?
在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()