Qtextedit.find() Doesn't Work In Python
Simple code demonstrating the problem: #!/usr/bin/env python import sys from PyQt4.QtCore import QObject, SIGNAL from PyQt4.QtGui import QApplication, QTextEdit app = QApplicatio
Solution 1:
The problem is the position of the cursor in the window.
By default - unless you specify some flags to be passed to the find()
function, the search only happens forward (= from the position of the cursor onwards).
In order to make your test work, you should do something like this:
- Run the program.
- Go to the window and type
BA
- Move your cursor to the beginning of the line
- Type
C
This way you will have in the window the string CBA
, with the cursor between C
and B
and the string onto which the find()
method will work returning True
will be BA
.
Alternatively you can test this other version of your code that has the backward flag set.
#!/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_())
Post a Comment for "Qtextedit.find() Doesn't Work In Python"