Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QTextedit find()始终返回False(pyside2)_Python_Qt5_Pyside2 - Fatal编程技术网

Python QTextedit find()始终返回False(pyside2)

Python QTextedit find()始终返回False(pyside2),python,qt5,pyside2,Python,Qt5,Pyside2,我想在QTextEdit中执行一些搜索和替换,但QTextEdit.find()始终返回False/未找到任何内容。我的错在哪里 以下是一个(非常)最小的可复制示例: from PySide2.QtWidgets import QApplication, QTextEdit from PySide2.QtGui import QTextCursor import sys app = QApplication(sys.argv) textedit = QTextEdit() cursor = t

我想在QTextEdit中执行一些搜索和替换,但QTextEdit.find()始终返回False/未找到任何内容。我的错在哪里

以下是一个(非常)最小的可复制示例:

from PySide2.QtWidgets import QApplication, QTextEdit
from PySide2.QtGui import QTextCursor
import sys

app = QApplication(sys.argv)
textedit = QTextEdit()
cursor = textedit.textCursor()
cursor.insertText("test test test")
cursor.movePosition(QTextCursor.Start)
print(textedit.find("t"))
textedit.show()
app.exec_()
Thx对于该-。-: “这个问题在这里已经有了答案: QTextEdit.find()在Python中不起作用“

事实并非如此。(在陈述类似问题和结束问题之前,可能先阅读问题和答案。这就是stackoverflow名声如此不好的原因。): “问题是光标在窗口中的位置。 默认情况下,搜索仅向前进行(=从光标位置开始)。
但是我通过cursor.movePosition(QTextCursor.start)将光标设置为文档的开头

我发现
textedit.textCursor()
创建位置的本地副本,并且它不会更改
QTextEdit
中的原始位置

您必须使用更新
QTextEdit
中的位置

textedit.setTextCursor(cursor) 
然后,
find()



当我使用
textedit.moveCursor()
而不是
cursor.moveCursor()
python\u learner和eyllanesc:Nope.@furas-thx,这对我有用吗?我发现
textedit.textCursor()不能与“cursor.movePosition”一起使用还是很尴尬
创建本地副本,并且它不会改变原始位置-最后您必须使用
文本编辑.setTextCursor(光标)
请参见
textedit.setTextCursor(光标)
在回答中,我知道这种行为,并始终将其视为一项功能(在后台执行操作时不要弄乱用户的光标)。记住这一点,我仍然觉得奇怪,需要使用“用户光标”使find()工作
from PySide2.QtWidgets import QApplication, QTextEdit
from PySide2.QtGui import QTextCursor
import sys

app = QApplication(sys.argv)

textedit = QTextEdit()

cursor = textedit.textCursor()   # get local copy
cursor.insertText("test test test")
cursor.movePosition(QTextCursor.Start)
textedit.setTextCursor(cursor)   # update it

#textedit.insertPlainText("test test test")
#textedit.moveCursor(QTextCursor.Start)

textedit.show()

print(textedit.find("t"))  # first `t`
print(textedit.find("t"))  # second `t`

app.exec_()