WxPython[TextCtrl]:使用TextCtrl函数将光标定位到文本末尾的方式。
很高兴认识你。我在使用wxpython时遇到了一些问题。这就是我无法控制TextCtrl函数的光标的原因。这是我的wxpython代码WxPython[TextCtrl]:使用TextCtrl函数将光标定位到文本末尾的方式。,python,cursor,wxpython,textctrl,Python,Cursor,Wxpython,Textctrl,很高兴认识你。我在使用wxpython时遇到了一些问题。这就是我无法控制TextCtrl函数的光标的原因。这是我的wxpython代码 #!/usr/bin/python import wx def get_main_screen_text(): text = "\n [Anyfusion Monitoring System]\n\n" return text class Tom(wx.Dialog): def __init__(self, paren
#!/usr/bin/python
import wx
def get_main_screen_text():
text = "\n [Anyfusion Monitoring System]\n\n"
return text
class Tom(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(400, 420))
panel = wx.Panel(self, -1)
vbox = wx.BoxSizer(wx.HORIZONTAL)
vbox1 = wx.BoxSizer(wx.VERTICAL)
vbox2 = wx.BoxSizer(wx.VERTICAL)
self.message = get_main_screen_text()
self.write = wx.TextCtrl(panel, -1, style=wx.TE_MULTILINE, value=self.message)
System_Checkup = wx.Button(panel, 1, label='System_Checkup')
Open_the_Web = wx.Button(panel, 1, label=' Open_the_Web ')
Help_Desk = wx.Button(panel, 1, label=' Help_Desk ')
Exit = wx.Button(panel, 1, label=' Exit ')
vbox1.Add(self.write, 1, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT | wx.BOTTOM, 15)
vbox2.Add(System_Checkup, 0, wx.TOP | wx.TOP | wx.RIGHT, 15)
vbox2.Add(Open_the_Web, 0, wx.TOP | wx.RIGHT, 15)
vbox2.Add(Help_Desk, 0, wx.TOP, 230)
vbox2.Add(Exit, 0, wx.TOP | wx.RIGHT, 15)
vbox.Add(vbox1, 1, wx.EXPAND)
vbox.Add(vbox2, 0, wx.TOP)
self.Bind(wx.EVT_BUTTON, self.EventHandler, id=1)
panel.SetSizer(vbox)
self.Centre()
def EventHandler(self, event):
b=event.GetEventObject().GetLabel()
if b.endswith('System_Checkup'):
self.message = self.message+"\nABC"
self.write.SetValue(self.message)
self.write.SetEditable(False)
self.write.SetScrollPos(wx.VERTICAL,0)
self.write.SetInsertionPoint(0)
self.write.Refresh()
class MyApp(wx.App):
def OnInit(self):
frame = Tom(None, -1, 'Tom')
frame.ShowModal()
frame.Destroy()
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
我想将光标定位到文本的末尾。但是我的程序没有成功。下面是我的wxpython程序的截图
下一个捕获是wxpython程序的预期结果。
非常感谢你。我想尽快解决这个问题。。谢谢..使用SetInsertionPointEnd
使用SetInsertionPointEnd
谢谢你。我解决了一个问题。每个功能都很好地工作。谢谢。我解决了一个问题。每项功能都能完美工作。
#!/usr/bin/python
import wx
def get_main_screen_text():
text = "\n [Anyfusion Monitoring System]\n\n"
return text
class Tom(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(400, 420))
panel = wx.Panel(self, -1)
vbox = wx.BoxSizer(wx.HORIZONTAL)
vbox1 = wx.BoxSizer(wx.VERTICAL)
vbox2 = wx.BoxSizer(wx.VERTICAL)
self.message = get_main_screen_text()
self.write = wx.TextCtrl(panel, -1, style=wx.TE_MULTILINE, value=self.message)
System_Checkup = wx.Button(panel, 1, label='System_Checkup')
Open_the_Web = wx.Button(panel, 1, label=' Open_the_Web ')
Help_Desk = wx.Button(panel, 1, label=' Help_Desk ')
Exit = wx.Button(panel, 1, label=' Exit ')
vbox1.Add(self.write, 1, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT | wx.BOTTOM, 15)
vbox2.Add(System_Checkup, 0, wx.TOP | wx.TOP | wx.RIGHT, 15)
vbox2.Add(Open_the_Web, 0, wx.TOP | wx.RIGHT, 15)
vbox2.Add(Help_Desk, 0, wx.TOP, 230)
vbox2.Add(Exit, 0, wx.TOP | wx.RIGHT, 15)
vbox.Add(vbox1, 1, wx.EXPAND)
vbox.Add(vbox2, 0, wx.TOP)
self.Bind(wx.EVT_BUTTON, self.EventHandler, id=1)
panel.SetSizer(vbox)
self.Centre()
def EventHandler(self, event):
b=event.GetEventObject().GetLabel()
if b.endswith('System_Checkup'):
self.message = self.message+"\nABC"
self.write.SetValue(self.message)
self.write.SetEditable(False)
self.write.SetScrollPos(wx.VERTICAL,0)
self.write.SetFocus()
self.write.SetInsertionPointEnd()
self.write.Refresh()
class MyApp(wx.App):
def OnInit(self):
frame = Tom(None, -1, 'Tom')
frame.ShowModal()
frame.Destroy()
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()