Verknüpfung zum PyQGIS-Skript zuweisen?

9

Ist es möglich, einem (benutzerdefinierten oder nicht ...) Skript der Processing Toolbox in QGIS eine Tastenkombination zuzuweisen?

Ich habe keine Informationen darüber gefunden.

Schneckenfresser
quelle
Sie können Plugins Tastenkombinationen zuweisen, die hier beschrieben werden: So rufen Sie eine Methode über eine Tastenkombination auf . Vielleicht kann dies geändert werden, um innerhalb eines Skripts zu funktionieren?
Joseph
Thx Joseph ... ich werde das überprüfen!
Schneckenfresser

Antworten:

9

Dies ist ein Beispiel für das Öffnen des Verarbeitungsalgorithmus "Attribute verbinden" durch Drücken von Ctrl+ 1(Sie können ihn kopieren und in die QGIS Python-Konsole einfügen):

# Function to open the "Join attributes" algorithm's UI
# See http://gis.stackexchange.com/questions/156633/how-to-launch-processing-tool-user-interface-using-pyqgis
from processing.core.Processing import Processing
from processing.gui.CommanderWindow import CommanderWindow
cw = CommanderWindow(iface.mainWindow(), iface.mapCanvas())
def openAlgorithm():
    alg = Processing.getAlgorithm("qgis:joinattributestable")
    if alg is not None:
        cw.runAlgorithm(alg)

# Assign "Ctrl+1" to openAlgorithm()
from PyQt4.QtGui import QShortcut, QKeySequence
from PyQt4.QtCore import Qt
shortcut = QShortcut(QKeySequence(Qt.ControlModifier + Qt.Key_1), iface.mainWindow())
shortcut.setContext(Qt.ApplicationShortcut)
shortcut.activated.connect(openAlgorithm)

Das ist es! Wenn Sie Ctrl+ drücken, wird 1die Benutzeroberfläche "Attribute verbinden" geöffnet:

Geben Sie hier die Bildbeschreibung ein

Hinweis 1: Sie können die Namen der verfügbaren Algorithmen abrufen, indem Sie diese Zeilen in die QGIS Python-Konsole eingeben:

import processing
processing.alglist()

Hinweis 2: Eine umfassende Liste der Schlüssel finden Sie in den Qt4-Dokumenten .

Hinweis 3: Sie können aufrufen shortcut.activated.disconnect(openAlgorithm), um die Zuordnung zwischen der Verknüpfung und der Benutzeroberfläche Ihres Algorithmus zu beenden.

Germán Carrillo
quelle
1
Es tut sicher ...
Schneckenfresser
1
Vielen Dank. Aus irgendeinem Grund sehe ich in der Qt-Dokumentation QShortcut unter QtWidgets und nicht QtGui (sowohl Qt4 als auch Qt5). In meinem Fall für QGIS3 und PyQt5 musste ich tun: von PyQt5.QtWidgets QShortcut importieren
Miro