Использование 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")
Другие вопросы по тегам