2024-06-16 11:42:05 发布
网友
当textcrl/Styled textcrl中的插入符号的位置发生更改时,调用什么事件?我需要绑定事件以在状态栏中显示插入符号的当前位置。在
我不认为有这样的活动,但你可以试试wx.EVT_SET_光标. 或者,你可以wx.EVT_字符或者一个EVT_KEY_x事件,并使用TextCtrl的GetInsertionPoint()方法来知道光标在哪里。当您使用鼠标事件在文本控件中单击时,可能还需要调用该方法。在
为了知道鼠标何时被放置在任何窗口内,你可以绑定wx.EVT_进入窗口(见here)
尝试将wx.EVT_KEY_UP事件与wx.TextCtrl对象绑定,如下所示: 在
wx.EVT_KEY_UP
wx.TextCtrl
import wx class MyForm(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, "Show Caret Position", size=(400, 140)) panel = wx.Panel(self, wx.ID_ANY) sizer = wx.BoxSizer(wx.VERTICAL) text = wx.StaticText(panel, -1, "Text:", (10, 22)) self.textCtrl = wx.TextCtrl( panel, -1, "", (50,5), size=(250, 50), style=wx.TE_MULTILINE ) self.textCtrl.SetInsertionPoint(0) self.textCtrl.Bind(wx.EVT_KEY_UP,self.onTextKeyEvent) self.textCtrl.Bind(wx.EVT_LEFT_UP,self.onTextKeyEvent) self.statusbar = self.CreateStatusBar(1) panel.SetSizerAndFit(sizer, wx.VERTICAL) def onTextKeyEvent(self, event): statusText = "Caret Position: "+str(self.textCtrl.GetInsertionPoint()) self.SetStatusText(statusText,0) event.Skip() #Run application if __name__ == "__main__": app = wx.PySimpleApp() frame = MyForm() frame.Show() app.MainLoop()
我用Python 2.7+wxPython 2.8在Windows 7环境中进行了测试。在
Python 2.7
wxPython 2.8
Windows 7
我不认为有这样的活动,但你可以试试wx.EVT_SET_光标. 或者,你可以wx.EVT_字符或者一个EVT_KEY_x事件,并使用TextCtrl的GetInsertionPoint()方法来知道光标在哪里。当您使用鼠标事件在文本控件中单击时,可能还需要调用该方法。在
为了知道鼠标何时被放置在任何窗口内,你可以绑定wx.EVT_进入窗口(见here)
尝试将
wx.EVT_KEY_UP
事件与wx.TextCtrl
对象绑定,如下所示: 在我用
Python 2.7
+wxPython 2.8
在Windows 7
环境中进行了测试。在相关问题 更多 >
编程相关推荐