Boîte de dialogue
Cette partie du runtime fournit un accès aux boîtes de dialogue natives, telles que les sélecteurs de fichiers et les boîtes de messages.
La boîte de dialogue n'est actuellement pas prise en charge dans l'exécuteur JS.
OpenDirectoryDialog
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner un répertoire. Peut être personnalisé en utilisant OpenDialogOptions.
Go: OpenDirectoryDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)
Renvoie : le répertoire sélectionné (vide si l'utilisateur a annulé) ou une erreur
OpenFileDialog
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner un fichier. Peut être personnalisé en utilisant OpenDialogOptions.
Go: OpenFileDialog(ctx context.Context, dialogOptions OpenDialogOptions) (string, error)
Renvoie : le fichier sélectionné (vide si l'utilisateur a annulé) ou une erreur
OpenFileDialog
Ouvre une boîte de dialogue qui invite l'utilisateur à sélectionner plusieurs fichiers. Peut être personnalisé en utilisant OpenDialogOptions.
Go: OpenMultipleFilesDialog(ctx context.Context, dialogOptions OpenDialogOptions) ([]string, error)
Renvoie : les fichiers sélectionnés (nil si l'utilisateur a annulé) ou une erreur
SaveFileDialog
Ouvre une boîte de dialogue qui invite l'utilisateur à saisir un nom pour le fichier à enregistrer. Peut être personnalisé en utilisant SaveDialogOptions.
Go: SaveFileDialog(ctx context.Context, dialogOptions SaveDialogOptions) (string, error)
Renvoie : le fichier sélectionné (vide si l'utilisateur a annulé) ou une erreur
MessageDialog
Affiche un message en utilisant une boîte de dialogue. Peut être personnalisé en utilisant MessageDialogOptions.
Go: MessageDialog(ctx context.Context, dialogOptions MessageDialogOptions) (string, error)
Renvoie : Le texte du bouton sélectionné ou une erreur
Options
OpenDialogOptions
type OpenDialogOptions struct {
    DefaultDirectory           string
    DefaultFilename            string
    Title                      string
    Filters                    []FileFilter
    ShowHiddenFiles            bool
    CanCreateDirectories       bool
    ResolvesAliases            bool
    TreatPackagesAsDirectories bool
}
| Champ | Description | Win | Mac | Lin | 
|---|---|---|---|---|
| DefaultDirectory | Le répertoire que la boîte de dialogue affichera à l'ouverture | ✅ | ✅ | ✅ | 
| DefaultFilename | Le nom du fichier par défaut | ✅ | ✅ | ✅ | 
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ | 
| Filters | Une liste de filtres de fichiers | ✅ | ✅ | ✅ | 
| ShowHiddenFiles | Afficher les fichiers cachés par le système | ✅ | ✅ | |
| CanCreateDirectories | Autoriser l'utilisateur de créer des dossiers | ✅ | ||
| ResolvesAliases | Si vrai, retourne le fichier et non l'alias | ✅ | ||
| TreatPackagesAsDirectories | Autoriser la navigation dans les dossiers | ✅ | 
SaveDialogOptions
type SaveDialogOptions struct {
    DefaultDirectory           string
    DefaultFilename            string
    Title                      string
    Filters                    []FileFilter
    ShowHiddenFiles            bool
    CanCreateDirectories       bool
    TreatPackagesAsDirectories bool
}
| Champ | Description | Win | Mac | Lin | 
|---|---|---|---|---|
| DefaultDirectory | Le répertoire que la boîte de dialogue affichera à l'ouverture | ✅ | ✅ | ✅ | 
| DefaultFilename | Le nom du fichier par défaut | ✅ | ✅ | ✅ | 
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ | 
| Filters | Une liste de filtres de fichiers | ✅ | ✅ | ✅ | 
| ShowHiddenFiles | Afficher les fichiers cachés par le système | ✅ | ✅ | |
| CanCreateDirectories | Autoriser l'utilisateur de créer des dossiers | ✅ | ||
| TreatPackagesAsDirectories | Autoriser la navigation dans les dossiers | ✅ | 
MessageDialogOptions
type MessageDialogOptions struct {
    Type          DialogType
    Title         string
    Message       string
    Buttons       []string
    DefaultButton string
    CancelButton  string
}
| Champ | Description | Win | Mac | Lin | 
|---|---|---|---|---|
| Type | Le type de boîte de dialogue de message: question, info... | ✅ | ✅ | ✅ | 
| Title | Titre pour la boite de dialogue | ✅ | ✅ | ✅ | 
| Message | Le message à afficher à l'utilisateur | ✅ | ✅ | ✅ | 
| Buttons | La liste des noms des boutons | ✅ | ||
| DefaultButton | Le bouton avec ce texte doit être traité comme le bouton par défaut. Lié à la touche entrée. | ✅* | ✅ | |
| CancelButton | Le bouton avec ce texte doit être traité permettant d'annuler. Lié à la touche echap | ✅ | 
Windows
Windows has standard dialog types in which the buttons are not customisable. The value returned will be one of: "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" or "Continue".
For Question dialogs, the default button is "Yes" and the cancel button is "No". This can be changed by setting the DefaultButton value to "No".
Example:
    result, err := runtime.MessageDialog(a.ctx, runtime.MessageDialogOptions{
        Type:          runtime.QuestionDialog,
        Title:         "Question",
        Message:       "Do you want to continue?",
        DefaultButton: "No",
    })
Linux
Linux has standard dialog types in which the buttons are not customisable. The value returned will be one of: "Ok", "Cancel", "Yes", "No"
Mac
A message dialog on Mac may specify up to 4 buttons. If no DefaultButton or CancelButton is given, the first button is considered default and is bound to the return key.
For the following code:
selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
    Title:        "It's your turn!",
    Message:      "Select a number",
    Buttons:      []string{"one", "two", "three", "four"},
})
the first button is shown as default:

And if we specify DefaultButton to be "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",
})
the second button is shown as default. When return is pressed, the value "two" is returned.

If we now specify CancelButton to be "three":
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",
})
the button with "three" is shown at the bottom of the dialog. When escape is pressed, the value "three" is returned:

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
Windows allows you to use multiple file filters in dialog boxes. Each FileFilter will show up as a separate entry in the dialog:

Linux
Linux allows you to use multiple file filters in dialog boxes. Each FileFilter will show up as a separate entry in the dialog:

Mac
Mac dialogs only have the concept of a single set of patterns to filter files. If multiple FileFilters are provided, Wails will use all the Patterns defined.
Exemple:
    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",
            },
        },
    })
This will result in the Open File dialog using *.png,*.jpg,*.mov,*.mp4 as a filter.