Использование SCI_SEARCHINTARGET в Qscintilla/PyQt4
Я пытаюсь найти положение строки в окне 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 ответ
Решение
См. http://www.scintilla.org/ScintillaDoc.html: length
Параметр - это длина текста, который вы ищете, а не текста, в котором вы ищете.
Это даст вам то, что вы хотите:
pos = messenger(window.SCI_SEARCHINTARGET, len("world"), "world")