Suite

Attribution d'un raccourci au script PyQGIS dans QGIS


Est-il possible d'attribuer un raccourci clavier à un script (personnalisé ou non…) du Boîte à outils de traitement dans QGIS ?

Je n'ai trouvé aucune information à ce sujet jusqu'à présent.


Ceci est un exemple de la façon d'ouvrir l'algorithme de traitement des "attributs de jointure" en appuyant sur Ctrl + Changement + 1 (vous pouvez le copier et le coller dans la console QGIS Python) :

Pour QGIS v3.x

# Fonction permettant d'ouvrir l'interface utilisateur de l'algorithme "Rejoindre les attributs" def openAlgorithm() : processing.execAlgorithmDialog("native:joinattributestable") # Affecter "Ctrl + Shift + 1" à openAlgorithm() depuis qgis.PyQt.QtGui import QKeySequence depuis qgis. PyQt.QtWidgets importe QShortcut depuis qgis.PyQt.QtCore import Qt raccourci = QShortcut(QKeySequence(Qt.ControlModifier + Qt.ShiftModifier + Qt.Key_1), iface.mainWindow()) raccourci.setContext(Qt.ApplicationShortcut) raccourci.activé. connect(openAlgorithm)

C'est ça! Si vous appuyez Ctrl + Changement + 1 l'interface utilisateur des attributs de jointure s'ouvrira :


Remarque 1.1 : Obtenez une liste lisible des identifiants et des noms d'algorithme de cette manière :

pour alg dans QgsApplication.processingRegistry().algorithms() : print("{}:{} --> {}".format(alg.provider().name(), alg.name(), alg.displayName( )))

Remarque 1.2 : Voir la documentation Qt5 pour une liste complète des clés.

Pour QGIS v2.x

# Fonction pour ouvrir l'interface utilisateur de l'algorithme "Rejoindre les attributs" # Voir http://gis.stackexchange.com/questions/156633/how-to-launch-processing-tool-user-interface-using-pyqgis à partir de processing.core.Processing import Traitement depuis processing.gui.CommanderWindow import CommanderWindow cw = CommanderWindow(iface.mainWindow(), iface.mapCanvas()) def openAlgorithm(): alg = Processing.getAlgorithm("qgis:joinattributestable") si alg n'est pas Aucun : cw .runAlgorithm(alg) # Attribuez "Ctrl+Shift+1" à openAlgorithm() depuis PyQt4.QtWidgets importez QShortcut depuis PyQt4.QtGui importez QKeySequence depuis PyQt4.QtCore importez le raccourci Qt = QShortcut(QKeySequence(Qt.ControlModifier + Qt.Shift) Qt.Key_1), iface.mainWindow()) raccourci.setContext(Qt.ApplicationShortcut) raccourci.activated.connect(openAlgorithm)

C'est ça! Si vous appuyez Ctrl + Changement + 1 l'interface utilisateur des attributs de jointure s'ouvrira :

Remarque 2.1 : Vous pouvez obtenir les noms des algorithmes disponibles en saisissant ces lignes dans la console QGIS Python :

traitement d'importation processing.alglist()

Remarque 2.2 : Voir la documentation Qt4 pour une liste complète des clés.

Remarque 2.3 : Tu peux appelerraccourci.activé.déconnecté(openAlgorithm)pour terminer l'association entre le raccourci et l'interface utilisateur de votre algorithme.


Voir la vidéo: Python in QGIS. Lesson 3. Scripts and Expressions. (Octobre 2021).