社区首页 >问答首页 >在txt / qt纯文本/ python中查找

在txt / qt纯文本/ python中查找
EN

Stack Overflow用户
提问于 2019-10-10 15:26:35
回答 2查看 191关注 0票数 0

嘿,

我将一个txt文件加载到一个qt纯文本界面小部件中(我正在使用python)。

我定义了一个"search“函数,但我有一个问题:

如果我搜索的单词高于上次搜索的单词,它将什么也找不到。我已经读到,我必须将光标放在文本的开头,但无法找到示例,并且我的所有测试都失败了。

下面是我的代码:

代码语言:javascript
代码运行次数:0
复制
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“函数中,是否没有直接在到达文档末尾时重新启动的选项?

EN

回答 2

Stack Overflow用户

发布于 2019-10-11 12:53:34

好了,我知道了!必须使用这个解决方案而不是textCursor.moveposition:

代码语言:javascript
代码运行次数:0
复制
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    
票数 1
EN

Stack Overflow用户

发布于 2019-10-10 15:42:00

我不确定是否从头开始,但您可以使用flag向后搜索。在您的案例中:

代码语言:javascript
代码运行次数:0
复制
if result == False:
        self.plainTextEdit_2.find(txt_to_search, QTextDocument.FindBackward)

或者从一开始就尝试:

代码语言:javascript
代码运行次数:0
复制
self.plainTextEdit_2.textCursor.movePosition(QTextCursor.Start)
self.plainTextEdit_2.find(txt_to_search)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58326375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档