我正在尝试在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
(找不到字符串)。
问题可能是什么?
答案 0 :(得分:3)
请参阅http://www.scintilla.org/ScintillaDoc.html#SCI_SEARCHINTARGET:length
参数是您要搜索的文字的长度,而不是您正在搜索的文字的长度。
这样可以得到你想要的东西:
pos = messenger(window.SCI_SEARCHINTARGET, len("world"), "world")