如何在小部件中捕获用户文本选择的起点和终点,例如wx.TextCtrl,wx.lib.editor,wx.richtext和wx.stc?我应该绑定什么事件?
我只是学习wxPython并根据示例使用以下基本代码。
import wx
import wx.lib.editor as editor
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))
self.control = editor.Editor(self, -1, style=wx.SUNKEN_BORDER)
self.Show(True)
app = wx.App(False)
frame = MyFrame(None, 'test editor')
app.MainLoop()
谢谢 -David
答案 0 :(得分:0)
有点晚了,但万一还是有帮助的。您可以使用win32api模块:
import wx
import win32api
class MyTextCtrl(wx.TextCtrl):
def __init__(self, parent):
self.hwnd = self.GetHandle()
def _GetSel(self):
EM_GETSEL: int = 0xB0
n = win32api.SendMessage(self.hwnd, EM_GETSEL, 0, 0)
return win32api.LOWORD(n), win32api.HIWORD(n)
def IsFullTextSelected(self):
return self._GetSel() == (0, len(self.Value))