Je m'attendais à des suggestions de saisie semi-automatique des mots-clés Python (ie for, range, lambda
) et espérant des suggestions de saisie semi-automatique avec les modules et fonctions standard de la bibliothèque (ie sys, os.path
, etc.) lors de la configuration d'une API QsciLexerPython lexer, mais dans l'exemple de code ci-dessous, compressé et mis à jour à partir de this website, le seul achèvement automatique qui se produit sont les quatre chaînes ajoutées à la liste. Est-ce que je fais quelque chose de mal, et si oui, comment puis-je obtenir des mots-clés python à enregistrer dans la saisie semi-automatique? (Ma question principale ici bien sûr)pas de mots-clés python dans les suggestions de saisie semi-automatique avec QScintilla et PyQt
Si c'est plutôt le comportement attendu, quel rôle joue le lexer dans la saisie semi-automatique et pourquoi les mots-clés du lexer ne sont-ils pas assignés aux listes de saisie semi-automatique dans cet exemple? Enfin, est-il possible d'avoir des modules de bibliothèque standard python et des sous-modules dans la saisie semi-automatique, et qu'est-ce que cela nécessite?
"""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_())
Il n'est pas nécessaire d'ajouter les mots-clés directement. Il existe des fichiers api python fournis par l'installation standard de qscintilla qui peuvent être chargés au moment de l'exécution. Vous pouvez également charger des fichiers api pour pyqt et pour qscintilla lui-même. – ekhumoro
@ekhumoro En regardant dans le paquet, je vois ces fichiers api, mais je ne suis pas certain de l'appel de la fonction pour les charger. Pourriez-vous fournir un exemple? –
Merci pour le commentaire, je suis allé regarder de plus près la documentation de la classe ici et j'ai trouvé ce que je cherchais. Voir la réponse ci-dessous. http://pyqt.sourceforge.net/Docs/QScintilla2/classQsciAPIs.html –