La serie de comandos siguiente, ejecutados en la Python Console de QGIS, permitirá definir y acceder a los metodos de la clase correspondiente a la Status Bar.
>>>statusBar = iface.mainWindow().statusBar() >>>statusBar <PyQt5.QtWidgets.QStatusBar object at 0x7f2ff0729a68>
El objeto del tipo QStatusBar presenta el método 'children' que permite producir una lista con todos los elementos involucrados; tal como se observa a continuación.
>>>elements = statusBar.children() >>>elements [<PyQt5.QtWidgets.QSizeGrip object at 0x7fe3e56f6ca8>, <PyQt5.QtWidgets.QWidget object at 0x7fe3e56f6d38>, <PyQt5.QtWidgets.QHBoxLayout object at 0x7fe3e56f6dc8>]
El segundo elemento (elements[1]) es del tipo QWidgets el cual también presenta el método 'children' y contiene a su vez los items de la Status Bar. El décimo de ellos corresponde a un objeto del tipo QToolButton que incluye el código EPSG requerido.
>>>elements[1].children() [<PyQt5.QtWidgets.QHBoxLayout object at 0x7fe3e56ff9d8>, <PyQt5.QtWidgets.QLineEdit object at 0x7fe3e56ffa68>, <PyQt5.QtWidgets.QProgressBar object at 0x7fe3e56ffaf8>, <PyQt5.QtWidgets.QToolButton object at 0x7fe3e56ffb88>, <PyQt5.QtWidgets.QWidget object at 0x7fe3e56ffc18>, <PyQt5.QtWidgets.QWidget object at 0x7fe3e56ffca8>, <PyQt5.QtWidgets.QWidget object at 0x7fe3e56ffd38>, <PyQt5.QtWidgets.QLabel object at 0x7fe3e56ffdc8>, <qgis._gui.QgsDoubleSpinBox object at 0x7fe3e56ffe58>, <PyQt5.QtWidgets.QCheckBox object at 0x7fe3e56ffee8>, <PyQt5.QtWidgets.QToolButton object at 0x7fe3e56fff78>, <PyQt5.QtWidgets.QToolButton object at 0x7fe3e5700048>, <PyQt5.QtWidgets.QWidget object at 0x7fe3e57000d8>] >>>elements[1].children()[10] <PyQt5.QtWidgets.QToolButton object at 0x7fe3e56fff78> >>>elements[1].children()[10].text() 'EPSG:4326'
La importancia de acceder a este código en la Status Bar radica en que no hace falta la referencia a las capas cargadas en el Map Canvas o en la Map Legend sino que directamente accedemos al CRS del proyecto por default. En el próximo post se visualizará la utilidad de este hecho.
No hay comentarios:
Publicar un comentario