编程语言
首页 > 编程语言> > QTextEdit.find()在Python中不起作用

QTextEdit.find()在Python中不起作用

作者:互联网

演示问题的简单代码:

#!/usr/bin/env python

import sys
from PyQt4.QtCore import QObject, SIGNAL
from PyQt4.QtGui import QApplication, QTextEdit

app = QApplication(sys.argv)

def findText():
    print(textEdit.find('A'))

textEdit = QTextEdit()
textEdit.show()
QObject.connect(textEdit, SIGNAL('textChanged()'), findText)
sys.exit(app.exec_())

在窗口中输入“ A”后,find(‘A’)仍返回False.

问题出在哪儿?

解决方法:

问题是光标在窗口中的位置.

默认情况下-除非您指定要传递给find()函数的flags,否则搜索只会向前进行(=从光标所在的位置开始).

为了使您的测试工作,您应该执行以下操作:

>运行程序.
>转到窗口并输入BA
>将光标移至行首
> C型

这样,您将在窗口中拥有字符串CBA,光标位于C和B之间,并且find()方法将在其上工作的字符串返回True将成为BA.

另外,您可以测试设置了向后标志的此代码的其他版本.

#!/usr/bin/env python
# -*- coding: utf-8  -*-

import sys
from PyQt4.QtCore import QObject, SIGNAL
from PyQt4.QtGui import QApplication, QTextEdit, QTextDocument

app = QApplication(sys.argv)

def findText():
    flag = QTextDocument.FindBackward
    print(textEdit.toPlainText(), textEdit.find('A', flag))

textEdit = QTextEdit()
textEdit.show()
QObject.connect(textEdit, SIGNAL('textChanged()'), findText)
sys.exit(app.exec_())

标签:qtextedit,pyqt4,qt4,python,qt
来源: https://codeday.me/bug/20191208/2089710.html