Mais

Como definir atalhos de teclado para os painéis 'Camadas' e 'Navegador' no QGIS 2.12.1 Lyon?

Como definir atalhos de teclado para os painéis 'Camadas' e 'Navegador' no QGIS 2.12.1 Lyon?


Tenho usado a solução python apresentada nesta resposta, que funcionou bem de 2.6 a 2.10 para mim e ainda funciona no LTR 2.8.4. Não consigo fazê-lo funcionar com o 2.12 (e a versão pontual recente 2.12.1).

Tenho meu .qgis2 / python / startup.py configurado com base na resposta no link acima.

from functools importar parcial de qgis.utils importar iface de PyQt4.QtCore importar * de PyQt4.QtGui import * mappings = {"Layers": Qt.ALT + Qt.Key_1, "Browser": Qt.ALT + Qt.Key_2} atalhos = [] def ativado (dock): dock = iface.mainWindow (). findChild (QDockWidget, dock) visible = dock.isVisible () dock.setVisible (não visível) def bind (): para dock, chaves em mappings.iteritems (): short = QShortcut (QKeySequence (keys), iface.mainWindow ()) short.setContext (Qt.ApplicationShortcut) short.activated.connect (parcial (ativado, dock)) shortcuts.append (short) bind ()

No console do Python, consigo alternar a visibilidade de cada painel usando .setVisible (True / False). No entanto, não consigo obter as chaves para vincular.


EDITAR: Funciona em QGIS 2.12.1 de osgeo4w (Windows 8.1), mas não funciona em QGIS 2.12.1 de macports (OSX 10.11).

Parece que QT.Alt não funciona mais no QGIS 2.12. A referência correta é QT.Key_Alt. Iluminado pelo link para a referência da chave QT nesta resposta.

O código abaixo funciona com QGIS 2.12.1

from functools importar parcial de qgis.utils importar iface de PyQt4.QtCore importar * de PyQt4.QtGui import * mappings = {"Layers": Qt.Key_Alt + Qt.Key_1, "Navegador": Qt.Key_Alt + Qt.Key_2} atalhos = [] def ativado (dock): dock = iface.mainWindow (). findChild (QDockWidget, dock) visible = dock.isVisible () dock.setVisible (não visível) def bind (): para dock, chaves em mappings.iteritems (): short = QShortcut (QKeySequence (keys), iface.mainWindow ()) short.setContext (Qt.ApplicationShortcut) short.activated.connect (parcial (ativado, dock)) shortcuts.append (short) bind ()