Mit PyQGIS können Sie verschiedene Einstellungen ändern, z. B. die Gruppen im Ebenenbedienfeld (oder im Inhaltsverzeichnis) fett formatieren:
from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)
Es werden die Einstellungen geschrieben, die aus den Optionen oder der Eingabe hervorgehen:
QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'
Aber es wird nicht angewendet. Ich dachte mit
QSettings().sync()
könnte aber leider nicht helfen. Die einzige Möglichkeit für die Anwendung wäre, entweder zur GUI zu gehen ( Settings > Options
) und dann auf zu klicken OKoder QGIS neu zu starten.
Gibt es eine Methode, um dies über PyQGIS zu tun?
Kontext :
Ich möchte dies als Makro in eine Projektdatei einfügen, um (aus ästhetischen Gründen) sicherzustellen, dass nur Gruppennamen fett gedruckt werden und Ebenennamen nicht. Daher ist es ideal, wenn die QSettings angewendet werden, wenn das Projekt geladen wurde (die anfänglichen Einstellungen werden erneut angewendet, wenn das Projekt geschlossen wird).
QSettings().setValue("/qgis/legendLayersBold", False)
.Ich denkt , dass das Problem in dieser Linie ist github.com/qgis/QGIS/blob/release-2_18/src/app/...
QgisApp::instance()->legend()->updateLegendItemStyles();
aber in einer zukünftigen version wohl?