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