Assegnare un collegamento allo script PyQGIS?


9

È possibile assegnare una scorciatoia da tastiera a uno script (personalizzato o no ...) di Processing Toolbox in QGIS?

Non ho trovato alcuna informazione al riguardo.


Puoi assegnare i tasti di scelta rapida ai plug-in descritti qui: Come chiamare un metodo tramite un tasto di scelta rapida . Forse questo può essere modificato per funzionare all'interno di uno script?
Joseph,

Grazie Joseph ... lo controllerò!
Snaileater,

Risposte:


9

Questo è un esempio di come aprire l'algoritmo di elaborazione "Unisci attributi" premendo Ctrl+ 1(è possibile copiarlo e incollarlo nella console di QGIS Python):

# 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)

Questo è tutto! Se si preme Ctrl+ 1si aprirà l'interfaccia utente Attributi join:

inserisci qui la descrizione dell'immagine

Nota 1: è possibile ottenere i nomi degli algoritmi disponibili inserendo queste righe nella console di QGIS Python:

import processing
processing.alglist()

Nota 2: vedere i documenti Qt4 per un elenco completo di chiavi.

Nota 3: è possibile chiamare shortcut.activated.disconnect(openAlgorithm)per terminare l'associazione tra il collegamento e l'interfaccia utente dell'algoritmo.


1
Lo fa di sicuro ...
lumaca

1
Grazie. Per qualche motivo vedo nella documentazione di Qt QShortcut in QtWidgets e non in QtGui (sia Qt4 che Qt5). Nel mio caso per QGIS3 e PyQt5 ho dovuto fare: da PyQt5.QtWidgets importare QShortcut
Miro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.