嘿,
我将一个txt文件加载到一个qt纯文本界面小部件中(我正在使用python)。
我定义了一个"search“函数,但我有一个问题:
如果我搜索的单词高于上次搜索的单词,它将什么也找不到。我已经读到,我必须将光标放在文本的开头,但无法找到示例,并且我的所有测试都失败了。
下面是我的代码:
def search_in_txt(self):
txt_to_search = self.lineEdit.text()
try:
result = self.plainTextEdit_2.find(txt_to_search)
if result == False:
# move cursor to the beginning and restart search
self.plainTextEdit_2.textCursor.movePosition(QTextCursor_MoveOperation=Start)
self.plainTextEdit_2.find(txt_to_search)
except:
self.statusbar.showMessage("This is the last iteration founded")
return
谢谢你的帮助,我都快疯了!在"find“函数中,是否没有直接在到达文档末尾时重新启动的选项?
发布于 2019-10-11 12:53:34
好了,我知道了!必须使用这个解决方案而不是textCursor.moveposition:
def search_in_txt(self):
txt_to_search = self.lineEdit.text()
try:
result = self.plainTextEdit_2.find(txt_to_search)
if result == False:
# move cursor to the beginning and restart search
self.plainTextEdit_2.moveCursor(QtGui.QTextCursor.Start)
self.plainTextEdit_2.find(txt_to_search)
except:
self.statusbar.showMessage("This is the last iteration founded")
return
发布于 2019-10-10 15:42:00
我不确定是否从头开始,但您可以使用flag向后搜索。在您的案例中:
if result == False:
self.plainTextEdit_2.find(txt_to_search, QTextDocument.FindBackward)
或者从一开始就尝试:
self.plainTextEdit_2.textCursor.movePosition(QTextCursor.Start)
self.plainTextEdit_2.find(txt_to_search)
https://stackoverflow.com/questions/58326375
复制相似问题