我期待Python关键字(即for, range, lambda
)的自动补全建议,并希望在设置api时使用标准库模块和函数(例如sys, os.path
等)提供自动补全建议QsciLexerPython词法分析器,但在下面的代码示例中,从this website进行了压缩和更新,唯一发生的自动完成是添加到列表中的四个字符串。在使用QScintilla和PyQt的自动完成建议中没有python关键字
我做错了什么,如果是这样,我怎么得到python关键字注册自动完成? (当然我的主要问题)
如果相反,这是预期的行为,词法分析器在自动填充中扮演什么角色?为什么在这个例子中词法分析器的关键字没有被分配到自动完成列表?
最后,是否有可能在自动完成中有python标准库模块和子模块,以及这些要求是什么?
"""Base code originally from: http://kib2.free.fr/tutos/PyQt4/QScintilla2.html"""
import sys
from PyQt5 import QtWidgets, Qsci
app = QtWidgets.QApplication(sys.argv)
editor = Qsci.QsciScintilla()
lexer = Qsci.QsciLexerPython()
editor.setLexer(lexer)
## setup autocompletion
api = Qsci.QsciAPIs(lexer)
api.add("aLongString")
api.add("aLongerString")
api.add("aDifferentString")
api.add("sOmethingElse")
api.prepare()
editor.setAutoCompletionThreshold(1)
editor.setAutoCompletionSource(Qsci.QsciScintilla.AcsAPIs)
editor.show()
editor.setText(open(sys.argv[0]).read())
sys.exit(app.exec_())
无需直接添加关键字。有标准qscintilla安装提供的python api文件,可以在运行时加载。您也可以加载pyqt和qscintilla本身的api文件。 – ekhumoro
@ekhumoro查看软件包我看到这些API文件,但我不确定加载它们的函数调用是什么。你能提供一个例子吗? –
感谢您的评论,我仔细查看了这里的课程文档,并找到了我正在寻找的内容。见下面的答案。 http://pyqt.sourceforge.net/Docs/QScintilla2/classQsciAPIs.html –