Asignación de acceso directo al script PyQGIS?


9

¿Es posible asignar un método abreviado de teclado a un script (personalizado o no ...) de Processing Toolbox en QGIS?

No he encontrado ninguna información al respecto.


Puede asignar teclas de acceso directo a los complementos que se describen aquí: Cómo llamar a un método mediante un acceso directo de tecla . ¿Quizás esto se pueda modificar para que funcione dentro de un script?
Joseph

Gracias Joseph ... ¡Voy a comprobar esto!
Snaileater

Respuestas:


9

Este es un ejemplo de cómo abrir el algoritmo de procesamiento "Unir atributos" presionando Ctrl+ 1(puede copiarlo y pegarlo en la consola 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)

¡Eso es! Si presiona Ctrl+, 1se abrirá la interfaz de usuario de Join Attributes:

ingrese la descripción de la imagen aquí

Nota 1: Puede obtener los nombres de los algoritmos disponibles ingresando estas líneas en la consola QGIS Python:

import processing
processing.alglist()

Nota 2: Consulte los documentos de Qt4 para obtener una lista completa de las claves.

Nota 3: puede llamar shortcut.activated.disconnect(openAlgorithm)para finalizar la asociación entre el acceso directo y la interfaz de usuario de su algoritmo.


1
Lo hace seguro ...
snaileater

1
Gracias. Por alguna razón, veo en la documentación de Qt QShortcut en QtWidgets y no en QtGui (Qt4 y Qt5). En mi caso para QGIS3 y PyQt5 tuve que hacer: desde PyQt5.QtWidgets import QShortcut
Miro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.