PyQGIS 스크립트에 바로 가기를 할당 하시겠습니까?


9

QGIS에서 Processing Toolbox의 (custom 또는 not ...) 스크립트에 키보드 단축키를 할당 할 수 있습니까?

정보가 없습니다.


플러그인에 바로 가기 키를 할당 할 수 있습니다. 여기에 설명되어 있습니다 : 키 바로 가기로 메서드를 호출하는 방법 . 아마도 이것은 스크립트 내에서 작동하도록 수정할 수 있습니까?
Joseph

Thx Joseph ... 나는 이것을 확인할거야!
snaileater

답변:


9

다음은 Ctrl+ 를 눌러 Processing "Join attributes"알고리즘을 여는 방법의 예입니다 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+ 를 누르면 1Join Attributes UI가 열립니다 :

여기에 이미지 설명을 입력하십시오

참고 1 : QGIS Python 콘솔에 다음 줄을 입력하면 사용 가능한 알고리즘의 이름을 얻을 수 있습니다.

import processing
processing.alglist()

참고 2 : 전체 키 목록은 Qt4 문서참조하십시오 .

참고 3 : 바로 가기와 알고리즘 UI 간의 연결을 완료하기 위해 호출 shortcut.activated.disconnect(openAlgorithm)할 수 있습니다 .


1
그것은 확실히 ...
snaileater

1
감사합니다. 어떤 이유로 Qt 문서 QShortcut에서 QtGui가 아닌 QtWidgets 아래에 있습니다 (Qt4 및 Qt5 모두). QGIS3 및 PyQt5에 대한 필자의 경우 PyQt5.QtWidgets에서 QShortcut 가져 오기
Miro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.