Passer au contenu principal
Version: v2.8.1

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.

JavaScript

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
}
ChampDescriptionWinMacLin
DefaultDirectoryLe répertoire que la boîte de dialogue affichera à l'ouverture✅✅✅
DefaultFilenameLe nom du fichier par défaut✅✅✅
TitleTitre pour la boite de dialogue✅✅✅
FiltersUne liste de filtres de fichiers✅✅✅
ShowHiddenFilesAfficher les fichiers cachés par le système✅✅
CanCreateDirectoriesAutoriser l'utilisateur de créer des dossiers✅
ResolvesAliasesSi vrai, retourne le fichier et non l'alias✅
TreatPackagesAsDirectoriesAutoriser la navigation dans les dossiers✅

SaveDialogOptions​

type SaveDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
TreatPackagesAsDirectories bool
}
ChampDescriptionWinMacLin
DefaultDirectoryLe répertoire que la boîte de dialogue affichera à l'ouverture✅✅✅
DefaultFilenameLe nom du fichier par défaut✅✅✅
TitleTitre pour la boite de dialogue✅✅✅
FiltersUne liste de filtres de fichiers✅✅✅
ShowHiddenFilesAfficher les fichiers cachés par le système✅✅
CanCreateDirectoriesAutoriser l'utilisateur de créer des dossiers✅
TreatPackagesAsDirectoriesAutoriser la navigation dans les dossiers✅

MessageDialogOptions​

type MessageDialogOptions struct {
Type DialogType
Title string
Message string
Buttons []string
DefaultButton string
CancelButton string
}
ChampDescriptionWinMacLin
TypeLe type de boîte de dialogue de message: question, info...✅✅✅
TitleTitre pour la boite de dialogue✅✅✅
MessageLe message à afficher à l'utilisateur✅✅✅
ButtonsLa liste des noms des boutons✅
DefaultButtonLe bouton avec ce texte doit être traité comme le bouton par défaut. Lié à la touche entrée.✅*✅
CancelButtonLe bouton avec ce texte doit être traité permettant d'annuler. Lié à la touche echap✅

Windows​

Windows a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera une des valeurs suivantes : "Ok", "Cancel", "Abort", "Retry", "Ignore", "Yes", "No", "Try Again" ou "Continue".

Pour les boites de dialogues pour les questions, le bouton par défaut est "Oui" et le bouton d'annulation est "Non". Cela peut être modifié en définissant la valeur DefaultButton à "No".

Exemple:

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

Linux​

Linux a des boites de dialogue standard dans lesquels les boutons ne sont pas personnalisables. La valeur retournée sera de :"Ok", "Cancel", "Yes", "No"

Mac​

Une boîte de dialogue sur Mac peut avoir jusqu'à 4 boutons. Si aucun DefaultButton ou CancelButton n'est donné, le premier bouton est considéré comme par défaut et est lié à la touche entrée.

Pour le code suivant :

selection, err := runtime.MessageDialog(b.ctx, runtime.MessageDialogOptions{
Title: "C'est ton tour",
Message: "Choisi un nombre",
Buttons: []string{"un", "deux", "trois", "quatre"},
})

le premier bouton est affiché comme étant celui par défaut :


Et si nous spécifions que le DefaultButton est "deux":

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",
})

le deuxième bouton est affiché comme étant la réponse par défaut. Lorsque la touche entrée est appuyée, la valeur "deux" est retournée.


Si nous spécifions maintenant CancelButton à "trois":

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",
})

le bouton avec "trois" est affiché en bas de la boîte de dialogue. Si la touche echap est appuyée, la valeur "trois" est retournée:




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 vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue :




Linux​

Linux vous permet d'utiliser plusieurs filtres de fichiers dans les boîtes de dialogue. Chaque FileFilter s'affichera comme une entrée séparée dans la boîte de dialogue :




Mac​

Les dialogues Mac n'ont qu'un ensemble unique de motifs pour filtrer les fichiers. Si plusieurs filtres de fichiers sont fournis, Wails utilisera tous les modèles définis.

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",
},
},
})

Cela se traduira par l'ouverture de la boîte de dialogue "Ouvrir un fichier" en utilisant *.png,*.jpg,*.mov,*.mp4 comme filtres.