在Qscintilla / PyQt4中使用SCI_SEARCHINTARGET

时间:2013-03-01 18:30:17

标签: python qt pyqt scintilla qscintilla

我正在尝试在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(找不到字符串)。

问题可能是什么?

1 个答案:

答案 0 :(得分:3)

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

这样可以得到你想要的东西:

pos = messenger(window.SCI_SEARCHINTARGET, len("world"), "world")