Za pomocą PyQGIS można zmieniać różne ustawienia, takie jak pogrubienie grup w panelu warstw (lub spisie treści):
from PyQt4.QtCore import QSettings
QSettings().setValue("/Qgis/legendGroupsBold", True)
Ustawienia są zapisywane, co można zobaczyć w opcjach lub po wpisaniu:
QSettings().value("/Qgis/legendGroupsBold")
>>> u'true'
Ale to się nie stosuje. Myślałem za pomocą
QSettings().sync()
może pomóc, ale niestety nie. Jedynym sposobem na jego zastosowanie byłoby przejście do GUI ( Settings > Options
), a następnie kliknięcie OKlub zrestartowanie QGIS.
Czy istnieje metoda wykonania tego za pomocą PyQGIS?
Kontekst :
Chcę dodać to jako makro w pliku projektu, aby upewnić się (ze względów estetycznych), że tylko nazwy grup są pogrubione, a nazwy warstw nie. Dlatego idealnie byłoby, gdyby ustawienia QSettings były stosowane po załadowaniu projektu (ustawienia początkowe byłyby ponownie zastosowane po zamknięciu projektu).
źródło
QSettings().setValue("/qgis/legendLayersBold", False)
Myślę, że problem jest w tej linii github.com/qgis/QGIS/blob/release-2_18/src/app/…QgisApp::instance()->legend()->updateLegendItemStyles();
ale prawdopodobnie w przyszłej wersji?Odpowiedzi:
Myślę, że nie jest to możliwe, chyba że napiszesz klucz ze stanem domyślnym w swoim
\HKEY_CURRENT_USER\Software\QGIS\qgis\UI\state
spojrzeniu tutaj .w rzeczywistości, kiedy ponownie uruchomimy oprogramowanie, zrobi to za nas automatycznie.
sprawdź to rozwiązanie:
jeśli to nie działa, musisz napisać skrypt, aby przepisać tę wartość rejestru.
aby to zrobić, musisz użyć winreg do manipulowania wartościami rejestru.
możesz przeglądać klucze rejestru za pomocą regedit.exe, jeśli korzystasz z systemu Windows.
Mam nadzieję, że to Ci pomoże...
źródło