Parametry

Parametry można definiować w aplikacji w celu używania wyłącznie w czasie wykonywania, ale można też je zapisać, aby zostały zachowane między sesjami. Istnieje możliwość odczytywania zmiennych środowiskowych użytkownika lub systemu, konfigurowania zmiennych środowiskowych lub właściwości w czasie wykonywania i zapisywania parametrów w pliku.

Zmienne środowiskowe

Zmienne środowiskowe można konfigurować dla użytkownika lub systemu. Można je konfigurować przed uruchomieniem aplikacji i używać ich do konfigurowania alternatywnego zachowania aplikacji. Na przykład skonfigurowanie zmiennej środowiskowej LANG wpłynie na ustawienia regionalne używane przez aplikacje Qt.

Aby odczytać wartość dowolnej zmiennej środowiskowej w aplikacji: AppFramework.environment.value().

Aby zastąpić bieżące ustawienie zmiennej środowiskowej: AppFramework.environment.setValue(). Ta zmiana będzie obowiązywać wtedy, gdy aplikacja pozostanie uruchomiona.

PropertySet

PropertySet jest komponentem umożliwiającym konfigurowanie par klucz-wartość, których można używać w powiązaniach QML. Tego komponentu najlepiej używać wtedy, gdy przed uruchomieniem aplikacji nie jest znana wartość właściwości, bo jest ona konfigurowana w czasie wykonywania.

Więcej informacji zawiera temat Dokumentacja interfejsu API — PropertySet.

Plik ustawień

Ustawienia można zapisywać w pliku JSON. Ustawienia zapisuje i odczytuje komponent Settings.

Lokalizacja tego pliku JSON różni się w zależności od systemu operacyjnego oraz od tego, czy aplikacja została utworzona jako autonomiczna, czy też jest używana przez aplikacje AppRun lub AppStudio Player. W większości przypadków bezpośrednia edycja pliku nie jest potrzebna, ale otwarcie tych plików może być konieczne w celach testowania błędów. Jeśli wystąpi potrzeba takiej edycji, pliki te można znaleźć w poniższych folderach. Pliki te mają nazwy utworzone według identyfikatora UUID usługi ArcGIS Online:

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

Po zbudowaniu aplikacji można wygenerować ten plik ustawień w jednej z czterech standardowych lokalizacji, w zależności od informacji dotyczących instytucji w aplikacji i uprawnień użytkowników. To są lokalizacje alternatywne. Można je zdefiniować, jeśli będą używane przez aplikację, za pomocą właściwości logicznej useFallbacks.

Definiowanie wartości ustawień w pliku

Ustawienia są przypisywane i przechowywane w postaci par klucz-wartość. Pary te są używane do reprezentowania dowolnych ustawień dodawanych przez użytkownika. Jeśli klucz nie istnieje, można go utworzyć w domyślnym ustawieniu lub w dowolnym miejscu, w którym użytkownik ustawi go na początku. Należy pamiętać, że w tych wartościach kluczy są rozróżniane małe i wielkie litery, dlatego należy stosować spójną wielkość liter.

Komponent Settings obsługuje cztery typy wartości, które mogą być przydatne w różnych kontekstach. W poniższych przykładach przedstawiono typowe sposoby użycia tych wartości.

Podstawowe funkcje value i setValue są przeznaczone dla ciągów znakowych i mogą być używane w szerokiej gamie scenariuszy. W tym przypadku następujący przykładowy kod pokazuje sposób ustawienia adresu URL domyślnej ścieżki:

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
    }
}

Funkcja boolValue udostępnia wybór wartości true lub false, który jest idealny dla jednoznacznego pytania zamkniętego. Następujący przykładowy kod stosuje to ustawienie do przełącznika, określając, czy aplikacja zachowuje logowania między sesjami:

property bool staySignedIn: false

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

Komponent Settings udostępnia również funkcję numberValue służącą do definiowania zmiennej całkowitoliczbowej, co jest użyteczne w przypadku ustawień szczegółowych, takich jak wielkość lub w scenariuszach wymagających dokonania wyboru między wieloma odrębnymi opcjami. Ponadto udostępnia on funkcję colorValue, która przechowuje szesnastkową wartość koloru, szeroko używaną na potrzeby dostosowania wyglądu aplikacji. Chociaż te funkcje przechowują różne typy wartości, zachowują się w ten sam sposób, jak funkcja boolValue.