【问题标题】:Using SCI_SEARCHINTARGET in Qscintilla/PyQt4在 Qscintilla/PyQt4 中使用 SCI_SEARCHINTARGET
【发布时间】:2013-02-16 08:27:46
【问题描述】:

我正在尝试在 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_()

它在当前保存字符串"Hello world" 的文本编辑器窗口中搜索字符串"world"。然而,当字符串明确存在于文本编辑器窗口中时,搜索返回-1(找不到字符串)。

可能是什么问题?

【问题讨论】:

标签: python qt pyqt scintilla qscintilla


【解决方案1】:

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

这会让你得到你想要的:

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

【讨论】:

  • 谢谢!我没有意识到这一点!
猜你喜欢
  • 2014-05-28
  • 2014-05-27
  • 2014-06-04
  • 2017-02-06
  • 2019-09-10
  • 2013-04-14
  • 2017-04-12
  • 2014-04-20
  • 2018-01-04
相关资源
最近更新 更多