Python 从wx.TextCtrl删除行

Python 从wx.TextCtrl删除行,python,wxpython,wx.textctrl,Python,Wxpython,Wx.textctrl,我正在使用wx.TextCtrl从网络守护进程输出文本。 由于输出非常详细,TextCtrl中的文本大小可能会变得非常大(顺便问一下,TextCtrl的内容大小是否有任何限制? 当TextCtrl.GetNumberOfLines()超过预定义的树名时,我想从TextCtrl中删除前N行。 实现这一点的最佳方法是什么?wx.TextCtrl的删除方法如何 无论何时要添加新文本,都可以检查当前文本是否过长,并从一开始删除一些文本。说明限制取决于基础本机文本控件,但至少应为32KB 关于删除前N行,

我正在使用wx.TextCtrl从网络守护进程输出文本。
由于输出非常详细,TextCtrl中的文本大小可能会变得非常大(顺便问一下,TextCtrl的内容大小是否有任何限制?
当TextCtrl.GetNumberOfLines()超过预定义的树名时,我想从TextCtrl中删除前N行。
实现这一点的最佳方法是什么?

wx.TextCtrl的删除方法如何

无论何时要添加新文本,都可以检查当前文本是否过长,并从一开始删除一些文本。

说明限制取决于基础本机文本控件,但至少应为32KB

关于删除前N行,您可以尝试调用0..N-1,计算总和S,然后调用(0,S)

Remove()来完成此操作

没有wx.TE_RICH标志的TextCtrl在Windows上不能超过64 KB。

您应该能够在
(列,行数)
对之间使用和转换位置(从开始以字符为单位)


因此,您可以使用
i=wx.TextCtrl.XYToPosition(0,n)
获取特定行n的位置
i
(或n+1,取决于如何从0或1开始计算),然后调用以删除前n行。

谢谢。这就是我想到的:def deleteLines(self,numLines):size=0表示范围内的I(numLines):self.outputdevice.Remove(0,self.outputdevice.GetLineLength(0)),我将比较调用N次GetLineLength()和1次Remove()与调用N次Remove和N次GetLineLength()的性能。仅供参考。Per@Abgan:在Windows7上有了wxPython,只调用一次Remove会快得多。