gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 16:51:40 25 4
gpt4 key购买 nike

演示问题的简单代码:

#!/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

问题出在哪里?

最佳答案

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

默认情况下 - 除非您指定一些 flags将传递给 find()函数,搜索只会发生向前(=从光标位置向前)。

为了让你的测试工作,你应该做这样的事情:

  1. 运行程序。
  2. 转到窗口并输入 BA
  3. 将光标移动到行首
  4. 输入 C

这样您将在窗口中看到字符串 CBA , 光标位于 C 之间和 Bfind() 所在的字符串方法将返回 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_())

关于python - QTextEdit.find() 在 Python 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com