2013-03-01 8 views
1

Я пытаюсь найти позицию строки в окне Qscintilla.Использование SCI_SEARCHINTARGET в Qscintilla/PyQt4

Вот кусок (работоспособный) макет кода:

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

Это может помочь: http://qscintilla.com/ –

ответ

3

См http://www.scintilla.org/ScintillaDoc.html#SCI_SEARCHINTARGET: Параметр length длина текста, который вы хотите найти, а не текст, который вы хотите найти в

Это поможет вам, что вы хотите:.

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

Спасибо! Я этого не понял! – Gilead