在我的项目中,我使用 wx.stc.StyledTextCtrl()。我绑定了 key down 和 key up 的事件。当我想在 TextCtrl 中添加一个字母时,我不会跳过该事件,出于某些原因,我使用 AddText() 方法来添加一个文本。当文本很长并且 ScrollBar(屏幕宽度)打开时,我希望 ScrollBar 位于我可以看到添加的字母的位置(会自动移动)。目前 ScrollBar 总是停留在屏幕的左侧。我正在寻找可以做到这一点的功能。
当字母超过 TextCtrl 的宽度(超过 pos 300)时,ScrollBar 仍然不会移动。我希望它像框架右侧的 messageTxt 一样。这是一个提出我的问题的基本代码:
import wx
import wx.stc
def on_key_down(event):
pass
def on_key_up(event):
key_code = event.GetKeyCode()
messageTxt.AddText(chr(key_code))
app = wx.App()
frame = wx.Frame(None, -1, title='2', pos=(0, 0), size=(500, 500))
frame.Show(True)
messageTxt = wx.stc.StyledTextCtrl(frame, id=wx.ID_ANY, pos=(0, 0), size=(300, 300),
style=wx.TE_MULTILINE, name="File")
messageTxt.Bind(wx.EVT_KEY_DOWN, on_key_down)
messageTxt.Bind(wx.EVT_KEY_UP, on_key_up)
messageTxt2 = wx.stc.StyledTextCtrl(frame, id=wx.ID_ANY, pos=(320, 0), size=(150, 150),
style=wx.TE_MULTILINE, name="File")
app.SetTopWindow(frame)
app.MainLoop()