繁体   English   中英

从wx.TextCtrl删除行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM