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).
quelle
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?Antworten:
Ich denke, es ist nicht möglich, es sei denn, Sie schreiben einen Schlüssel mit dem Standardstatus in Ihren
\HKEY_CURRENT_USER\Software\QGIS\qgis\UI\state
Blick hier .Wenn wir die Software neu starten, wird dies automatisch für uns erledigt.
überprüfe diese Lösung:
Wenn dies nicht funktioniert, müssen Sie ein Skript schreiben, um diesen Registrierungswert neu zu schreiben.
Dazu müssen Sie winreg verwenden , um Registrierungswerte zu bearbeiten .
Sie können Ihre Registrierungsschlüssel über regedit.exe anzeigen, wenn Sie Windows verwenden.
Ich hoffe das hilft dir...
quelle