我期待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 –