Configurações

As configurações podem ser definidas em um aplicativo para uso somente no tempo de execução ou salvas para persistirem nas sessões. Você pode ler variáveis de ambiente do usuário ou do sistema, definir variáveis de ambiente ou propriedades durante o tempo de execução ou salvar configurações em um arquivo.

Variáveis de ambiente

Variáveis de ambiente podem ser definidas para o usuário ou para o sistema. Elas podem ser definidas antes de executar seu aplicativo e utilizadas para configurar o comportamento de aplicativos alternativos. Por exemplo, a configuração da variável de ambiente LANG influenciará a localidade utilizada pelos aplicativos Qt.

Para ler o valor de qualquer variável de ambiente no seu aplicativo, utilize AppFramework.environment.value().

Para substituir a configuração atual de uma variável de ambiente, utilize AppFramework.environment.setValue(). Esta alteração permanecerá válida enquanto o aplicativo estiver sendo executado.

PropertySet

PropertySet é um componente que permite definir pares de valor-chave que podem ser utilizados em ligações de QML. Este componente é melhor utilizado quando você não sabe qual será o valor da propriedade antes do aplicativo ser iniciado e, em vez disso, é definido no tempo de execução.

Para mais informações, consulte a Referência de API para PropertySet.

Arquivo de configurações

As configurações podem ser salvas em um arquivo JSON e são gravadas e lidas pelo componente Settings.

A localização deste arquivo de JSON varia dependendo do seu sistema operacional, como também, se o aplicativo foi criado como um aplicativo independente ou utilizado através do AppRun ou AppStudio Player. Em quase todos os casos, a edição diretamente no arquivo não é necessária, mas ela pode ser necessária para abrir estes arquivos com o propósito de testar erros. Se você precisar fazer isto, os arquivos estão localizados nas seguintes pastas, nomeados por seu UUID em ArcGIS Online:

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

Após um aplicativo ser construído, este arquivo de configurações pode ser gerado em uma das quatro localizações padrão dependendo das informações organizacionais no aplicativo e permissões de usuário. Estas são localizações de retiradas e você pode definir se o seu aplicativo irá utilizá-las com a propriedade useFallbacks do Booleano .

Definir os valores de configuração em um arquivo

As configurações são atribuídas e armazenadas como pares de valor-chave, que são utilizadas para representar quaisquer configurações que você adicionou. Se uma chave não existir, ela poderá ser criada para um conjunto padrão ou para qualquer que seja o primeiro usuário a configurá-la. Esteja ciente que estes valores chaves diferenciam maiúscula de minúscula; utilize capitalização consistente.

O componente Settings suporta quatro tipos de valores que podem ser úteis em diferentes contextos. Os seguintes exemplos mostram formas típicas nas quais os valores podem ser utilizados.

As funções básicas value e setValue são planejadas para strings e podem ser utilizadas para uma grande variedade de cenários. Neste caso, a amostra de código seguinte fornece um modo para configurar uma URL de caminho padrão:

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

A função boolValue fornece uma opção de verdadeiro ou falso, ideal para uma pergunta fechada com um pequeno detalhe exigido. A seguinte amostra de código se aplica à configuração para um botão, determinando se o aplicativo lembra de logins através das sessões:

property bool staySignedIn: false

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

O componente Settings também fornece numberValue para definir um número inteiro, que é útil para configurações granulares, como tamanho ou cenários que exigem uma escolha entre várias opções distintas e colorValue, que armazena um valor de cor hexadecimal, amplamente utilizado para personalizar a aparência de um aplicativo. Embora essas funções armazenem diferentes tipos de valores, elas se comportam da mesma maneira que boolValue.