1

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文字列がテキスト エディター ウィンドウに明確に存在する場合、検索は返されます (文字列を見つけることができませんでした)。

問題は何ですか?

4

1 に答える 1

3

http://www.scintilla.org/ScintillaDoc.html#SCI_SEARCHINTARGETを参照してください:lengthパラメータは、検索しているテキストの長さではなく、検索しているテキストの長さです。

これにより、必要なものが得られます。

pos = messenger(window.SCI_SEARCHINTARGET, len("world"), "world")
于 2013-03-04T12:19:40.943 に答える