Pular para o conteúdo principal
Versão: Próxima Versão 🚧

Diálogo

Esta parte do tempo de execução fornece acesso a dialogos nativos, como os Seletores de Arquivo e caixas de mensagem.

JavaScript

O dialog não é suportado pelo runtime do JS.

OpenDirectoryDialog

Abre um diálogo que solicita o usuário para selecionar um diretório. Pode ser personalizado usando o OpenDialogOptions.

Go: OpenDirectoryDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)

Retorna: Diretório selecionado (nulo se o usuário cancelar) ou um erro

OpenFileDialog

Abre um diálogo que solicita o usuário para selecionar um arquivo. Pode ser personalizado usando o OpenDialogOptions.

Go: OpenFileDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)

Retorna: Arquivo selecionado (nulo se o usuário cancelar) ou um erro

OpenMultipleFilesDialog

Abre um diálogo que pede o usuário para selecionar vários arquivos. Pode ser personalizado usando o OpenDialogOptions.

Go: OpenMultipleFilesDialog(ctx context.Context, dialogOptions OpenDialogOptions) ([]string, error)

Retorna: Arquivos selecionados (nulo se o usuário cancelar) ou um erro

SaveFileDialog

Abre um diálogo que solicita o usuário selecionar um nome de arquivo para salvar. Pode ser personalizado usando SaveDialogOptions.

Go: SaveFileDialog(ctx context.Context, dialogOptions SaveDialogOptions) (string, error)

Retorna: O arquivo selecionado (nulo se o usuário cancelar) ou um erro

MessageDialog

Exibe uma mensagem usando a caixa de diálogo da mensagem. Pode ser personalizado usando o MessageDialogOptions.

Go: MessageDialog(ctx context.Context, dialogOptions MessageDialogOptions) (string, error)

Retorna: O texto do botão selecionado ou um erro

Opções

OpenDialogOptions

type OpenDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
ResolvesAliases bool
TreatPackagesAsDirectories bool
}
AtributoDescriçãoWinMacLin
DefaultDirectoryO diretório que a caixa de diálogo será exibida quando aberta
DefaultFilenameO nome do arquivo padrão
TitleTítulo para a caixa de diálogo
FiltersUma lista de filtros de arquivos
ShowHiddenFilesExibir arquivos ocultos pelo sistema
CanCreateDirectoriesPermitir que o usuário crie diretórios
ResolvesAliasesSe verdadeiro, retorna o arquivo não o alias
TreatPackagesAsDirectoriesPermitir a navegação em pacotes

SaveDialogOptions

type SaveDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
TreatPackagesAsDirectories bool
}
AtributoDescriçãoWinMacLin
DefaultDirectoryO diretório que a caixa de diálogo será exibida quando aberta
DefaultFilenameO nome do arquivo padrão
TitleTítulo para a caixa de diálogo
FiltersUma lista de filtros de arquivos
ShowHiddenFilesExibir arquivos ocultos pelo sistema
CanCreateDirectoriesPermitir que o usuário crie diretórios
TreatPackagesAsDirectoriesPermitir a navegação em pacotes

MessageDialogOptions

type MessageDialogOptions struct {
Type DialogType
Title string
Message string
Buttons []string
DefaultButton string
CancelButton string
}
AtributoDescriçãoWinMacLin
TipoO tipo de diálogo de mensagem, por exemplo, pergunta, informações...
TitleTítulo para a caixa de diálogo
MessageA mensagem para mostrar o usuário
ButtonsUma lista de títulos de botões
DefaultButtonO botão com este texto deve ser tratado como padrão. Vincule a return.*
CancelButtonO botão com este texto deve ser tratado como padrão. Vincule a return

Windows

Windows tem tipos de diálogo padrão em que os botões não são personalizáveis. O valor retornado será um dos: "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" or "Continue".

Para diálogos de Perguntas, o botão padrão é "Sim" e o botão cancelar é "Não". Isso pode ser alterado definindo o valor do DefaultButton para "No".

Exemplo:

    result, err := runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{
Type: runtime.QuestionDialog,
Title: "Question",
Message: "Do you want to continue?",
DefaultButton: "No",
})

Linux

Linux tem tipos de diálogo padrão em que os botões não são personalizáveis. O valor retornado será um de: "Ok", "Cancel", "Yes", "No"

Mac

Uma caixa de diálogo de mensagem no Mac pode especificar até 4 botões. Se nenhum DefaultButton ou CancelButton for dado, o primeiro botão é considerado padrão e está ligado à chave return.

Para o código a seguir:

selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "It's your turn!",
Message: "Select a number",
Buttons: []string{"one", "two", "three", "four"},
})

o primeiro botão é mostrado como padrão:


E se especificarmos o DefaultButton como "two":

selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "It's your turn!",
Message: "Select a number",
Buttons: []string{"one", "two", "three", "four"},
DefaultButton: "two",
})

o segundo botão será mostrado como padrão. Quando return é pressionado, o valor "dois" é retornado.


Se especificarmos agora o CancelButton como "três:

selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "It's your turn!",
Message: "Select a number",
Buttons: []string{"one", "two", "three", "four"},
DefaultButton: "two",
CancelButton: "three",
})

o botão com "três" é mostrado na parte inferior do diálogo. Quando escape é pressionado, o valor "três" é retornado:




DialogType

const (
InfoDialog DialogType = "info"
WarningDialog DialogType = "warning"
ErrorDialog DialogType = "error"
QuestionDialog DialogType = "question"
)

FileFilter

type FileFilter struct {
DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)"
Pattern string // semi-colon separated list of extensions, EG: "*.jpg;*.png"
}

Windows

O Windows permite que você use vários filtros de arquivos em caixas de diálogo. Cada FileFilter aparecerá como uma entrada separada na caixa de diálogo:




Linux

Linux permite que você use vários filtros de arquivo em caixas de diálogo. Cada FileFilter aparecerá como uma entrada separada na caixa de diálogo:




Mac

As caixas de diálogo Mac possuem apenas o conceito de um único conjunto de padrões para filtrar arquivos. Se vários Filtros forem fornecidos, o Wails usará todos os padrões definidos.

Exemplo:

    selection, err := runtime.OpenFileDialog(b.ctx, runtime.OpenDialogOptions{
Title: "Select File",
Filters: []runtime.FileFilter{
{
DisplayName: "Images (*.png;*.jpg)",
Pattern: "*.png;*.jpg",
}, {
DisplayName: "Videos (*.mov;*.mp4)",
Pattern: "*.mov;*.mp4",
},
},
})

Isso resultará na caixa de diálogo Abrir Arquivo usando *.png,*.jpg,*.mov,*.mp4 como filtro.