Ligar / desligar programaticamente os painéis com PyQGIS

10

No QGIS, em right-clickalgum lugar da área da barra de ferramentas, os painéis podem ser ativados / desativados, como mostrado na captura de tela abaixo (o Painel de informações do GPS, por exemplo).

insira a descrição da imagem aqui

Eu preciso fazer isso programaticamente, então como ativar / desativar os painéis do PyQGIS? Eu descobri que a QgsInterfaceclasse tem algum método addDockWidgete removeDockWidget, mas eu realmente não conseguia descobrir se esse é o caminho certo para conseguir isso ...

Jochen Schwarze
fonte

Respostas:

11

Esses painéis são QDockWidgets , podemos procurar por eles objectNamese, se corresponder, definir sua visibilidade para False(por exemplo, ocultá-los).

Portanto, para o painel de informações do GPS , você pode usar:

from PyQt4.QtGui import QDockWidget
for x in iface.mainWindow().findChildren(QDockWidget):
    #print x.objectName()
    if x.objectName() == 'GPSInformation':
        x.setVisible(False)
Joseph
fonte