¿Cómo aplicar cambios en QSettings inmediatamente?

14

Con PyQGIS, puede cambiar varias configuraciones, como hacer que los grupos en el Panel de capas (o tabla de contenido) en negrita:

from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)

Se escriben las configuraciones que se pueden ver desde las opciones o escribiendo:

QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'

Pero no se aplica. Pensé usando

QSettings().sync()

podría ayudar, pero lamentablemente no. La única forma de que se aplique sería ir a la GUI ( Settings > Options ) y luego hacer clic en OK o reiniciar QGIS.

¿Hay un método para hacer esto a través de PyQGIS?

Contexto :

Quiero agregar esto como una macro en un archivo de proyecto para asegurar (por motivos estéticos) que solo los nombres de los grupos aparecen en negrita y los nombres de las capas no. Por lo tanto, sería ideal si los ajustes de Q se aplican cuando el proyecto se ha cargado (las configuraciones iniciales se volverían a aplicar cuando se cierre el proyecto).

    
pregunta Joseph 19.10.2017 - 12:28

1 respuesta

1

Creo que no es posible a menos que escriba una clave con el estado predeterminado en su \HKEY_CURRENT_USER\Software\QGIS\qgis\UI\state eche un vistazo aquí .

en realidad, cuando reiniciamos el software, automáticamente lo hace por nosotros.

comprueba esta solución:

#!/usr/bin/python
from PyQt4.QtCore import QSettings
QSettings( "QGIS", "QGIS2" ).remove( "/UI/state" )
QSettings( "QGIS", "QGIS2" ).remove( "/ComposerUI/state" )


#(for 1.8 it's QGIS instead of QGIS2 IIRC).

Si no funciona, debe escribir un script para volver a escribir ese valor de registro.

para hacerlo, debes usar winreg para manipular los valores de registro.

puede ver sus claves de registro a través de regedit.exe si usas windows.

Espero que esto te ayude ...

    
respondido por el Afshin Salehi 27.10.2017 - 09:19

Lea otras preguntas en las etiquetas