Ecco lo script che ha creato dopo cinque o sei tentativi chatGPT.
non ho idea se sia stilisticamente “elegante” ma funziona.
copiare lo script nella console python che si trova nel menu dei Plugin e lanciarlo.
compare una finestra di dialogo che chiede una stringa contenuta nel nome delle viste e cancellerà tutte le viste che contengono quella stringa nel nome.
se anziché una stringa si inserisce l’asterisco (*) saranno cancellate tutte le viste.
from qgis.core import QgsProject
from PyQt5.QtWidgets import QInputDialog
# Funzione per eliminare i temi di mappa (map themes) che contengono una stringa specifica
def delete_map_themes(search_string):
# Ottieni il progetto corrente
project = QgsProject.instance()
# Accedi ai temi di mappa salvati
map_themes = project.mapThemeCollection()
# Ottieni tutti i nomi dei temi di mappa salvati
themes = map_themes.mapThemes()
# Controlla se l'utente vuole eliminare tutti i temi di mappa
if search_string == "*":
for theme in themes:
map_themes.removeMapTheme(theme)
print(f"Tema di mappa '{theme}' eliminato.")
print("Tutti i temi di mappa sono stati eliminati.")
else:
# Elimina i temi di mappa che contengono la stringa specificata
for theme in themes:
if search_string in theme:
map_themes.removeMapTheme(theme)
print(f"Tema di mappa '{theme}' eliminato.")
# Richiedi all'utente di inserire la stringa di ricerca tramite una finestra di dialogo
search_string, ok = QInputDialog.getText(None, "Elimina Temi di Mappa", "Inserisci la stringa da cercare (inserisci '*' per eliminare tutti i temi di mappa):")
# Controlla se l'utente ha premuto "OK" nella finestra di dialogo
if ok:
# Chiama la funzione per eliminare i temi di mappa
delete_map_themes(search_string)