PyQGISスクリプトへのショートカットを割り当てますか?


9

QGISで、Processing Toolboxの(カスタムまたはそうでない...)スクリプトにキーボードショートカットを割り当てることはできますか?

それに関する情報は見つかりませんでした。


ここで説明されているプラ​​グインにショートカットキーを割り当てることができます:キーショートカットでメソッドを呼び出す方法。おそらく、これはスクリプト内で機能するように変更できますか?
ジョセフ

Thxジョセフ...私はこれをチェックするつもりです!
カタツムリ2015年

回答:


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、結合属性UIが開きます。

ここに画像の説明を入力してください

注1:QGIS Pythonコンソールで次の行を入力すると、使用可能なアルゴリズムの名前を取得できます。

import processing
processing.alglist()

注2:キーの包括的なリストについては、Qt4のドキュメント参照してください。

注3:を呼び出しshortcut.activated.disconnect(openAlgorithm)て、ショートカットとアルゴリズムのUIの間の関連付けを完了することができます。


1
それは確かにあります...
snaileater 2015年

1
ありがとうございました。何らかの理由で、QtGuiではなくQtWidgetsの下のQShortcutをQtドキュメントで見ます(Qt4とQt5の両方)。私のQGIS3とPyQt5の場合、私はしなければなりませんでした:from PyQt5.QtWidgets import QShortcut
Miro
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.