Impostazioni

Le impostazioni possono essere definite in un'app per l'uso esclusivo in fase di runtime oppure salvate per restare invariate nelle diverse sessioni. È possibile leggere variabili di ambiente di utente o di sistema, impostare variabili di ambiente o proprietà in fase di runtime oppure salvare impostazioni su un file.

Variabili di ambiente

Le variabili di ambiente possono essere impostate per l'utente o per il sistema. Possono essere impostate prima di eseguire l'app e utilizzate per configurare un comportamento alternativo dell'app. Ad esempio, l'impostazione della variabile di ambiente LANG inciderà sulle impostazioni locali utilizzate dalle applicazioni Qt.

Per leggere il valore di una variabile di ambiente nell'app, utilizzare AppFramework.environment.value().

Per sovrascrivere l'impostazione attuale di una variabile di ambiente, utilizzare AppFramework.environment.setValue(). Tale modifica resterà valida durante l'esecuzione dell'app.

PropertySet

PropertySet è un componente che consente di impostare coppie di valori chiave utilizzabili in binding QML. Questo componente è particolarmente utile quando non si conosce il valore di proprietà prima del lancio dell'app e lo si imposta invece in fase di runtime.

Per ulteriori informazioni, consultare il Riferimento API per PropertySet.

File delle impostazioni

Le impostazioni possono essere salvate in un file JSON e sono scritte e lette dal componente Settings.

La destinazione di questo file JSON varia in base al sistema operativo e a seconda del fatto che l'app sia stata creata o meno come app indipendente o se sia in uso attraverso AppRun o AppStudio Player. In quasi tutti i casi, non è necessario modificare direttamente il file, ma potrebbe essere necessario aprirli per effettuare prove di bug. In tal caso, i file si trovano nelle seguenti cartelle, con il nome del loro UUID in ArcGIS Online:

  • Windows: C:\Users\YourUsername\ArcGIS\AppStudio\Settings
  • macOS e Ubuntu: ~\ArcGIS\AppStudio\Settings

Dopo la costruzione di un'app, questo file delle impostazioni può essere generato in una delle quattro destinazioni standard a seconda delle informazioni di organizzazione nell'app e delle autorizzazioni utente. Si tratta di destinazioni di fallback ed è possibile definire se l'app le userà con la proprietà booleana useFallbacks.

Definire i valori di impostazione in un file

Le impostazioni vengono assegnate e archiviate come coppie di valori chiave, utilizzate per rappresentare le impostazioni aggiunte. Se non esiste una chiave, è possibile crearne una predefinita o qualunque l'utente decida all'inizio. I valori delle chiavi distinguono tra maiuscole e minuscole; usarle sempre in modo coerente.

Il componente Settings supporta quattro tipi di valori, utili in diversi contesti. I seguenti esempi mostrano maniere tipiche di utilizzo possibile dei valori.

Le funzioni value e setValue di base sono state progettate per le stringhe e possono essere utilizzate in un ampio ventaglio di situazioni. In tal caso, il seguente esempio di codice fornisce un metodo per impostare un URL dal percorso predefinito:

readonly property string defaultLibraryPath: "~/ArcGIS/Example App/Library"

Item {
    Component.onDestruction: {
        var paths = libraryTextField.text.trim();

        if (paths.length <= 0) {
            paths = defaultLibraryPath;
        }

            settings.setValue("libraryPaths", paths, defaultLibraryPath);
    }

    TextField {
        id: libraryTextField

        Layout.fillWidth: true

        text: defaultLibraryPath
    }
}

La funzione boolValue fornisce una scelta tra vero e falso, ideale per una domanda a risposta chiusa che non richiede molte sfumature. Il seguente esempio di codice applica le impostazioni ad un interruttore e stabilisce se l'applicazione mantiene gli accessi tra le sessioni:

property bool staySignedIn: false

    Switch {
    checked: staySignedIn
    onCheckedChanged: {
        staySignedIn = true;
        settings.boolValue("staySignedIn", true);
    }
}

Il componente Settings fornisce anche numberValue per definire un numero intero, funzionalità utile per le impostazioni granulari, come le dimensioni, o per situazioni che richiedono una scelta tra più opzioni diverse, e colorValue, che archivia un valore esadecimale per i colori, ampiamente usato per personalizzare l'aspetto di un'app. Benché tali funzioni memorizzano vari tipi di valori, si comportano allo stesso modo di boolValue.