Chỉ định phím tắt cho tập lệnh PyQGIS?


9

Có thể gán phím tắt cho tập lệnh (tùy chỉnh hay không ...) của Hộp công cụ xử lý trong QGIS?

Tôi đã không tìm thấy bất kỳ thông tin về nó.


Bạn có thể gán các phím tắt cho các plugin được mô tả ở đây: Cách gọi một phương thức bằng phím tắt . Có lẽ điều này có thể được sửa đổi để làm việc trong một kịch bản?
Joseph

Thx Joseph ... tôi sẽ kiểm tra cái này!
ốc sên

Câu trả lời:


9

Đây là một ví dụ về cách mở thuật toán Xử lý "Tham gia thuộc tính" bằng cách nhấn Ctrl+ 1(bạn có thể sao chép và dán nó vào bảng điều khiển Python của QGIS):

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

Đó là nó! Nếu bạn nhấn Ctrl+ 1UI Tham gia thuộc tính sẽ mở:

nhập mô tả hình ảnh ở đây

Lưu ý 1: Bạn có thể lấy tên của các thuật toán có sẵn bằng cách nhập các dòng này trong bảng điều khiển QGIS Python:

import processing
processing.alglist()

Lưu ý 2: Xem tài liệu Qt4 để biết danh sách khóa đầy đủ.

Lưu ý 3: Bạn có thể gọi shortcut.activated.disconnect(openAlgorithm)để kết thúc liên kết giữa phím tắt và giao diện người dùng thuật toán của bạn.


1
Chắc chắn là ...
snaileater

1
Cảm ơn bạn. Vì một số lý do tôi thấy trong tài liệu Qt QShortcut dưới QtWidgets chứ không phải QtGui (cả Qt4 và Qt5). Trong trường hợp của tôi cho QGIS3 và PyQt5, tôi đã phải làm: từ PyQt5.QtWidgets nhập QShortcut
Miro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.