다양한 로그 데이터가 포함 된 TextCtrl이 있습니다. 사용자가 찾을 문자열을 검색 할 수있는 EditText 필드가있는 경우 찾기 버튼을 클릭하여 단어를 찾아 강조 표시합니다 로그에 있습니다. 브라우저에서 표준 찾기/하이라이트/메모장 등Python TextCtrl 검색 및 강조 표시 기능
이미 작동합니까가 성공적으로 사용자의 단어를 강조 코드, 그러나 내가 구현하고자하는 것이없는 비트의 몇 가지가 있습니다 :
- 가
동일한 단어를 검색하고 다음 단어를 강조 표시 할 수있는 능력 예 : '다음 찾기'편집 : 이것은 아래 코드로 '다음 찾기'버튼을 추가하여 해결되었습니다. 이 카운트는 다음 강조 표시를 모두 로그 끝까지가 아니라 1 단어로 제한합니다. - 그것을 동일한 단어, 또는 새로운 단어
시작 될 새로운 단어를 검색하는 현재 단어를 유엔 강조 위치 0 (데이터의 정상) 새로운 단어를EDIT 찾고하다면 : 데프def findTxt(self,e): global wordPos newstring = self.logTxt.GetValue() for i in range(self.progressBox.GetNumberOfLines()): line = self.progressBox.GetLineText(i) if newstring in line: startPos = self.progressBox.GetValue().find(newstring) endPos = startPos + len(newstring) wordPos = endPos self.progressBox.Bind(wx.EVT_SET_FOCUS, self.highlightText(startPos, endPos)) startPos = 0 self.findNextBtn.Enable() def findNext(self,e): global wordPos newstring = self.logTxt.GetValue() count = 0 for i in range(self.progressBox.GetNumberOfLines()): if count == 0: line = self.progressBox.GetValue() if newstring in line: startPos = self.progressBox.GetValue().find(newstring, wordPos) endPos = startPos + len(newstring) wordPos = endPos self.progressBox.Bind(wx.EVT_SET_FOCUS, self.highlightText(startPos, endPos)) count = 1 def highlightText(self, pos, size): self.progressBox.SetStyle(pos, size, wx.TextAttr("black", "turquoise")) self.progressBox.SetInsertionPoint(pos)
모든 기준이 충족 된