Pergunta

Eu estou usando um wx.TextCtrl ao texto saída de um daemon de rede.
Como a saída é bastante detalhado, o tamanho do texto na TextCtrl pode se tornar enorme (BTW há qualquer limitação no tamanho do conteúdo de uma TextCtrl?)
Gostaria de eliminar as linhas de topo de N a partir do TextCtrl quando TextCtrl.GetNumberOfLines () excede um limiar predefinido. Qual é a melhor maneira de conseguir isso?

Foi útil?

Solução

O href="http://docs.wxwidgets.org/2.6/wx_wxtextctrl.html#wxtextctrlsetmaxlength" rel="nofollow noreferrer"> referência SetMaxLength diz que a limitação depende do texto nativo subjacente controle, mas deve ser 32KB, pelo menos.

Sobre a exclusão do linhas de topo N, você poderia tentar chamar getLineLength para 0..n-1, calcular a soma S e, em seguida, chamar Retirar (0, S)

Outras dicas

Como sobre o método Remove wx.TextCtrl?

Sempre que você está prestes a adicionar novo texto, você pode verificar se o texto atual parece demasiado longo e remover alguns desde o início.

Remove () deve fazer o truque.

TextCtrl sem wx.TE_RICH bandeira não pode ter mais de 64 KB no Windows.

Você deve ser capaz de usar wx.TextCtrl.PositionToXY() e wx.TextCtrl.XYToPosition() posição convertido para ( medido em caracteres de início) para e a partir de um par (column, line_num).

Assim, você pode usar i = wx.TextCtrl.XYToPosition(0, n) para obter o i posição de uma determinada linha n (ou n + 1 , dependendo de como você contá-los 0- ou 1- based), em seguida, chamar wx.TextCtrl.Remove(0, i) para remover o primeiro n linhas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top