¿QgsMapLayerRegistry se eliminó en QGIS3?

13

¿ QgsMapLayerRegistry estará disponible en pyqgis con QGIS3

Cuando lo escribí en la consola QGIS python (2.99), Python parece reconocerlo porque se completa automáticamente qgis.core.QgsMapLayerRegistry , pero luego da un error de que no está allí:

Traceback (most recent call last):
  File "/usr/lib/python3.5/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
AttributeError: module 'qgis.core' has no attribute 'QgsMapLayerRegistry'

Intenté esto con dos versiones de QGIS 2.99 (una en 01/07 y en 06/17). Ambas versiones dan el mismo error. import tampoco funciona:

>>>from qgis.core import QgsMapLayerRegistry
Traceback (most recent call last):
  File "/usr/lib/python3.5/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
ImportError: cannot import name 'QgsMapLayerRegistry'

¿Se eliminó QgsMapLayerRegistry en QGIS3?

    
pregunta tinlyx 19.06.2017 - 02:45

2 respuestas

17

Sí, se ha eliminado, pero existen alternativas.

Los cambios de la API 3.0 se enumeran aquí:

enlace

  

QgsMapLayerRegistry : Su funcionalidad se ha movido a QgsProject .

La razón principal es que QgsMapLayerRegistry es / era un singleton y, por lo tanto, solo un registro único podría existir. Con esta restricción eliminada, los principales obstáculos están fuera del camino para implementar cosas nuevas, como tener varios proyectos abiertos uno al lado del otro.

    
respondido por el Matthias Kuhn 19.06.2017 - 09:53
7

Puedes hacer lo mismo fácilmente, solo hazlo

 QgsProject.instance().addMapLayer(your_Qgs_whaterver_Layer)

para más detalles

enlace

    
respondido por el Abhijit Gujar 26.06.2018 - 13:48

Lea otras preguntas en las etiquetas