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"