3

我正在使用 wx.TextCtrl 从网络守护程序输出文本。
由于输出非常冗长,TextCtrl 中的文本大小可能会变得很大(顺便说一句,TextCtrl 内容的大小是否有任何限制?)
我想在 TextCtrl.GetNumberOfLines 时从 TextCtrl 中删除前 N 行() 超过预定义的阈值。实现这一目标的最佳方法是什么?

4

4 回答 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 回答