當TextCtrl/Styled TextCtrl中的插入符號的位置已更改時,會調用哪個事件?我需要綁定事件以在狀態欄中顯示插入符的當前位置。wxPython插入符號移動事件
回答
嘗試使用wx.TextCtrl
對象像這樣綁定wx.EVT_KEY_UP
事件:
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()
我對Windows 7
環境Python 2.7
+ wxPython 2.8
測試。
是的,它在鍵盤上運行良好,非常感謝。但是當我用鼠標改變插入符號的位置時,它不能正常工作。 – 2012-05-03 13:08:45
喔---我忘了加上'MouseEvent'爲'TextCtrl',只需添加一行'self.textCtrl.Bind(wx.EVT_LEFT_UP,self.onTextKeyEvent)」行'self.textCtrl.Bind(WX後.EVT_KEY_UP,self.onTextKeyEvent)」。它會在點擊鼠標時起作用。 – 2012-05-04 06:40:52
@TendouKishi:我**編輯**代碼。現在看。 – 2012-05-04 06:43:02
我不認爲有這樣的事件,但你可以嘗試wx.EVT_SET_CURSOR。或者,您可以捕獲wx.EVT_CHAR或其中一個EVT_KEY_ *事件,並使用TextCtrl的GetInsertionPoint()方法來知道遊標的位置。當您在使用鼠標事件的文本控件中單擊時也可能需要調用該方法。
wx.EVT_SET_CURSOR導致我的指針不能轉換成'I'字母。有沒有其他的方法可以在不阻止鼠標轉換的情況下使用? – 2012-05-03 13:11:14
我可能應該說你可以使用wx.EVT_LEFT_DOWN而不是光標。試試看。 – 2012-05-03 13:33:04
它成功地沒有停止我的鼠標指針的轉換,但它需要雙擊鼠標才能使用鼠標移動... – 2012-05-03 13:40:52
爲了知道什麼時候鼠標放在你可以綁定任何wx.EVT_ENTER_WINDOW窗口中(見here)
- 1. Winforms ComboBox:當插入符號移動時的事件?
- 2. 在webkit-gtk中移動插入符號
- 3. TinyMCE在插入範圍後移動插入符號
- 4. 在Text控件中檢測插入符號移動
- 5. 添加逗號時,插入符號向後移動
- 6. wxPython輸入按鈕事件
- 7. wxPython:手動調用事件
- 8. wxpython textctrl更改插入符號的顏色
- 9. 插入符號
- 10. WxPython&符號使用
- 11. Slim C++信號/事件機制與插槽的移動語義
- 12. 當值改變時,插入符號向左端移動
- 13. 移動插入符號到DataGridViewTextBoxCell點擊一個CheckBoxCell當在c#
- 14. 插入符號移動2個位置代替1
- 15. 使用PlainDocument在JTextField中移動插入符號
- 16. 如何在輸入字母時移動div(如輸入插入符號)?
- 17. JTextField - 在focusLost事件中更改插入符號位置
- 18. 移動插入符的位置?
- 19. 將PyQt4插件嵌入到wxPython窗口
- 20. 設置插入符號的位置,其中插入符號未插入JTextArea
- 21. SVN插入符號符號不工作在WinXP從SVN手動
- 22. 插入UITextField中的插入符號(ios)
- 23. Kendo移動MVV *輸入更改事件
- 24. 正確的邏輯/無符號移位插入1而不是0符號位
- 25. jQuery插入元素符號
- 26. 用VBA插入符號
- 27. 錯誤:在插入符號
- 28. Chrome contenteditable插入符號
- 29. 將unicode符號插入edittext
- 30. 插入貨幣符號,itextSharp
試過wx.stc.EVT_STC_CHANGE,好,當我改變的內容,但當我只是簡單地移動插入符號時沒有用處。 – 2012-04-28 16:10:34