2011-08-17 139 views

回答

2

您可以使用GetInsertionPoint()来查找光标的当前位置。您可以使用:len(self.LogWindow.GetRange(0, self.LogWindow.GetInsertionPoint()).split("\n"))来获取行号本身。

然后你可以使用: GetLineText()获得整个文本行...

所以:

curPos = self.LogWindow.GetInsertionPoint 
lineNum = self.LogWindow.GetRange(0, self.LogWindow.GetInsertionPoint()).split("\n") 
lineText = self.LogWindow.GetLineText(lineNum) 

在理论联系应工作...?

Check This Out...

+0

感谢它的工作。 – drfrev

1

您可以使用PositionToXY()来找出给定插入点的行号,而不是捕猎或计数\n秒。

lineNum = self.LogWindow.PositionToXY(curPos)[1] # lineNum is the y coord from PosToXY() 
+0

在当前版本中,wxPython Phoenix TextCtrl.PositionToXY()返回一个(bool,x,y),所以PositionToXY(curPos)[2]是合适的。 – DevPlayer

+0

哇 - 他们改变了那个电话吗?这似乎有点讨厌? – GreenAsJade

+0

是的。尽管我使用的是TextCtrl,但我想可能wx.LogWindow.PositionToXY()和wx.TextCtrl.PositionToXY()都是从同一个地方继承而来,而不是返回一个三元组。但我没有测试过它。我也在做Python 3.4.2而不是Python 2.x。尽管我无法想象影响返回值结构,但现在在Phoenix包中使用了某种形式的重载。我没有看到PositionToXY()的折旧版本(即向后兼容) – DevPlayer