def findForwardText(self, text): flags = QTextDocument.FindFlag() if self.find_case: flags |= QTextDocument.FindCaseSensitively if self.find_words: flags |= QTextDocument.FindWholeWords found = self.find(text, flags)
def replaceText(self, search, replace): flags = QTextDocument.FindFlag() if self.find_case: flags |= QTextDocument.FindCaseSensitively if self.find_words: flags |= QTextDocument.FindWholeWords found = self.find(search, flags) if found: cursor = self.textCursor() cursor.beginEditBlock() if cursor.hasSelection(): cursor.insertText(replace) cursor.endEditBlock()
def findAllText(self, text): flags = QTextDocument.FindFlag(0) if self.find_case: flags |= QTextDocument.FindCaseSensitively if self.find_words: flags |= QTextDocument.FindWholeWords searching = True cursor = self.textCursor() while searching: found = self.find(text, flags) if found: cursor = self.textCursor() else: searching = False if cursor.hasSelection(): self.setTextCursor(cursor)
pos1, pos2 = match.span() fcursor = self.textCursor() fcursor.setPosition(pos1) fcursor.setPosition(pos2, QTextCursor.KeepAnchor) return fcursor def find_text(self, text, changed=True, forward=True, case=False, words=False, regexp=False): """Find text""" cursor = self.textCursor() findflag = QTextDocument.FindFlag() if not forward: findflag = findflag | QTextDocument.FindBackward if case: findflag = findflag | QTextDocument.FindCaseSensitively moves = [QTextCursor.NoMove] if forward: moves += [QTextCursor.NextWord, QTextCursor.Start] if changed: if to_text_string(cursor.selectedText()): new_position = min( [cursor.selectionStart(), cursor.selectionEnd()])