wx.textctrl에서 라인 삭제
-
19-08-2019 - |
문제
WX.TextCtrl을 사용하여 네트워크 데몬에서 텍스트를 출력하고 있습니다.
출력이 상당히 장점이므로 TextCtrl의 텍스트 크기는 거대해질 수 있습니다 (BTW TextCtrl의 내용 크기에 제한이 있습니까?)
TextCtrl.getNumberOflines ()가 사전 정의 된 트레 폴드를 초과 할 때 TextCtrl에서 상단 N 줄을 삭제하고 싶습니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
해결책
그만큼 setMaxLength 참조 제한은 기본 원시 텍스트 제어에 따라 다르지만 최소한 32kb 여야한다고 말합니다.
상단 N 라인을 삭제하는 것에 대해 getlinelengrength 0..n-1의 경우 합계를 계산 한 다음 제거하다(0, s)
다른 팁
wx.textctrl의 제거 방법은 어떻습니까?
새 텍스트를 추가하려고 할 때마다 현재 텍스트가 너무 길어서 처음부터 일부 텍스트를 제거 할 수 있습니다.
제거 ()는 트릭을 수행해야합니다.
wx.te_rich 플래그가없는 TextCtrl은 Windows에 64kb 이상을 가질 수 없습니다.
당신은 사용할 수 있어야합니다 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 윤곽.