我正在使用 wx.TextCtrl 从网络守护程序输出文本。
由于输出非常冗长,TextCtrl 中的文本大小可能会变得很大(顺便说一句,TextCtrl 内容的大小是否有任何限制?)
我想在 TextCtrl.GetNumberOfLines 时从 TextCtrl 中删除前 N 行() 超过预定义的阈值。实现这一目标的最佳方法是什么?
KornP
问问题
3462 次
4 回答
1
SetMaxLength参考说限制取决于底层的本机文本控件,但至少应为 32KB。
关于删除前 N 行,您可以尝试调用GetLineLength为 0..N-1,计算总和 S,然后调用Remove (0,S)
于 2009-01-16T12:44:11.957 回答
0
wx.TextCtrl 的 Remove 方法怎么样?
每当您要添加新文本时,您可以检查当前文本是否显得太长并从一开始就删除一些。
于 2009-01-16T12:43:31.643 回答
0
Remove() 应该可以解决问题。
没有 wx.TE_RICH 标志的 TextCtrl 在 Windows 上不能超过 64 KB。
于 2009-01-16T12:46:25.493 回答
0
您应该能够使用wx.TextCtrl.PositionToXY()
和wx.TextCtrl.XYToPosition()
转换位置(从开始以字符为单位)与一(column, line_num)
对。
因此,您可以使用i = wx.TextCtrl.XYToPosition(0, n)
获取i
特定行n的位置(或n+1,具体取决于您如何从 0 或 1 开始计算它们),然后调用wx.TextCtrl.Remove(0, i)
以删除前n行。
于 2016-08-08T07:02:59.943 回答