[英]Deleting lines from wx.TextCtrl
我正在使用wx.TextCtrl从网络守护程序输出文本。
由于输出非常冗长,因此TextCtrl中的文本大小可能会变得很大(顺便说一句,TextCtrl的内容大小是否受到限制?)
当TextCtrl.GetNumberOfLines()超过预定义的阈值时,我想从TextCtrl中删除前N行。 做到这一点的最佳方法是什么?
SetMaxLength参考说该限制取决于底层的本机文本控件,但至少应为32KB。
关于删除前N行,可以尝试调用0..N-1的GetLineLength ,计算总和S,然后调用Remove (0,S)
您应该能够使用wx.TextCtrl.PositionToXY()
和wx.TextCtrl.XYToPosition()
在(column, line_num)
对之间转换位置(以字符开始测量(column, line_num)
。
因此,您可以使用i = wx.TextCtrl.XYToPosition(0, n)
来获取特定行n (或n + 1 ,具体取决于您如何从0或1开始计数i = wx.TextCtrl.XYToPosition(0, n)
的位置i
,然后调用wx.TextCtrl.Remove(0, i)
删除前n行。
wx.TextCtrl的Remove方法怎么样?
每当您要添加新文本时,都可以检查当前文本是否过长,并从头开始删除其中的一些内容。
Remove()应该可以解决问题。
在Windows上,不带wx.TE_RICH标志的TextCtrl不能超过64 KB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.