أكثر

كيف يمكن تعيين اختصارات لوحة المفاتيح للوحات "الطبقات" و "المستعرض" في QGIS 2.12.1 ليون؟

كيف يمكن تعيين اختصارات لوحة المفاتيح للوحات


لقد كنت أستخدم حل python المقدم في هذه الإجابة ، والذي عمل جيدًا من 2.6 إلى 2.10 بالنسبة لي ، ولا يزال يعمل في LTR 2.8.4. لا يمكنني تشغيله مع 2.12 (والإصدار الأخير 2.12.1).

لقد تم تكوين .qgis2 / python / startup.py الخاص بي بناءً على الإجابة المرتبطة أعلاه.

من functools استيراد جزئي من qgis.utils استيراد iface من PyQt4.QtCore استيراد * من PyQt4.QtGui import * mappings = {"Layers": Qt.ALT + Qt.Key_1، "Browser": اختصارات Qt.ALT + Qt.Key_2} = [] تنشيط def (dock): dock = iface.mainWindow (). findChild (QDockWidget، dock) مرئي = dock.isVisible () dock.setVisible (غير مرئي) def bind (): للإرساء ، مفاتيح في mappings.iteritems (): اختصار = QShortcut (QKeySequence (keys) ، iface.mainWindow ()) short.setContext (Qt.ApplicationShortcut) short.activated.connect (جزئي (منشط ، إرساء)) اختصارات. إلحاق (قصير) ربط ()

من وحدة تحكم python ، يمكنني تبديل رؤية كل لوحة باستخدام .setVisible (صواب / خطأ). ومع ذلك ، لا يمكنني الحصول على المفاتيح للربط.


تحرير: يعمل هذا على QGIS 2.12.1 من osgeo4w (Windows 8.1) ، لكنه لا يعمل على QGIS 2.12.1 من macports (OSX 10.11).

يبدو أن QT.Alt لم يعد يعمل في QGIS 2.12. المرجع الصحيح هو QT.Key_Alt. مستنيرة بالرابط إلى إشارة مفتاح كيو تي في هذه الإجابة.

يعمل الكود أدناه مع QGIS 2.12.1

من functools استيراد جزئي من qgis.utils استيراد iface من PyQt4.QtCore استيراد * من PyQt4.QtGui import * mappings = {"Layers": Qt.Key_Alt + Qt.Key_1، "Browser": اختصارات Qt.Key_Alt + Qt.Key_2} = [] تنشيط def (dock): dock = iface.mainWindow (). findChild (QDockWidget، dock) مرئي = dock.isVisible () dock.setVisible (غير مرئي) def bind (): للإرساء ، مفاتيح في mappings.iteritems (): اختصار = QShortcut (QKeySequence (keys) ، iface.mainWindow ()) short.setContext (Qt.ApplicationShortcut) short.activated.connect (جزئي (منشط ، إرساء)) اختصارات. إلحاق (قصير) ربط ()

شاهد الفيديو: Using a conditional statement to make a boolean layer in QGIS