1

我正在尝试在 Qscintilla 窗口中搜索字符串的位置。

这是一段(可运行的)模拟代码:

import sys
from PyQt4 import QtGui, Qsci

app = QtGui.QApplication(sys.argv)
window = Qsci.QsciScintilla()
window.show()

# Search in target for string
text = "Hello world"
window.setText(text)
messenger = window.SendScintilla
messenger(window.SCI_SETTARGETSTART, 0)
messenger(window.SCI_SETTARGETEND, len(text))
pos = messenger(window.SCI_SEARCHINTARGET, len(text), "world")
print(pos);

app.exec_()

"world"它在当前保存该字符串的文本编辑器窗口中搜索该字符串"Hello world"。但是-1,当字符串清楚地存在于文本编辑器窗口中时,搜索会返回(找不到字符串)。

问题可能是什么?

4

1 回答 1

3

请参阅http://www.scintilla.org/ScintillaDoc.html#SCI_SEARCHINTARGETlength参数是您正在搜索的文本的长度,而不是您正在搜索的文本的长度。

这会给你你想要的:

pos = messenger(window.SCI_SEARCHINTARGET, len("world"), "world")
于 2013-03-04T12:19:40.943 回答