Призначення ярлика до сценарію PyQGIS?


9

Чи можливо призначити ярлик клавіатури (сценарій користувальницької чи ні ...) в програмі QGIS?

Я не знайшов жодної інформації про це.


Ви можете призначити клавіші швидкого доступу для плагінів, що описано тут: Як викликати метод за допомогою ярлика клавіш . Можливо, це можна змінити для роботи в рамках сценарію?
Йосип

Thx Джозеф ... я перевірю це!
snaileater

Відповіді:


9

Це приклад того, як відкрити алгоритм обробки "Атрибути приєднання", натиснувши клавішу Ctrl+ 1(ви можете скопіювати та вставити її в консоль 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)

Це воно! Якщо натиснути Ctrl+ 1інтерфейс приєднатися до атрибутів, відкриється:

введіть тут опис зображення

Примітка 1. Ви можете отримати імена доступних алгоритмів, ввівши ці рядки в консолі QGIS Python:

import processing
processing.alglist()

Примітка 2: Дивіться документи Qt4 для вичерпного списку ключів.

Примітка 3: Ви можете зателефонувати, shortcut.activated.disconnect(openAlgorithm)щоб закінчити зв'язок між ярликом та інтерфейсом вашого алгоритму.


1
Це точно ...
снайлет

1
Дякую. Я чомусь бачу в документації Qt QShortcut під QtWidgets, а не QtGui (і Qt4, і Qt5). У моєму випадку для QGIS3 та PyQt5 мені довелося зробити: з PyQt5.QtWidgets імпорт QShortcut
Miro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.