파이썬 키워드에 대한 자동 제안 제안 (예 : for, range, lambda
)과 함께 표준 라이브러리 모듈 및 함수 (예 : sys, os.path
등)에 대한 자동 완성 제안을 기대했습니다. QsciLexerPython 렉서이지만, 아래의 코드 예제에서는 this website에서 압축되고 업데이트되며, 자동 완료는 목록에 추가 된 네 개의 문자열입니다.QScintilla 및 PyQt를 사용하여 자동 완성 제안에 파이썬 키워드가 없음
내가 잘못하고 있는데, 그렇다면 어떻게 파이썬 키워드를 자동 완성에 등록 할 수 있습니까? (당연히 여기에서 내 주요 질문입니다)
오히려 이것이 예상되는 동작이라면, 렉서가 자동 완성에서 어떤 역할을합니까? 그리고이 예제에서 렉서의 키워드가 자동 완성 목록에 지정되지 않은 이유는 무엇입니까?
마지막으로 파이썬 표준 라이브러리 모듈과 하위 모듈을 자동 완성에 포함 할 수 있습니까? 그게 필요한 것은 무엇입니까?
"""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 –