メインコンテンツにスキップ
バージョン: v2.4.0

ダイアログ

ランタイムでは、ファイルセレクターやメッセージボックスといったネイティブダイアログへのアクセスを提供しています。

JavaScript

現在、Javascriptランタイムではダイアログをサポートしていません。

OpenDirectoryDialog​

ユーザにディレクトリの選択を求めるダイアログを開きます。 OpenDialogOptionsを使用してカスタマイズできます。

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

返り値: 選択されたディレクトリ(キャンセルされた場合は空) またはエラー

OpenFileDialog​

ユーザにファイルの選択を求めるダイアログを開きます。 OpenDialogOptionsを使用してカスタマイズできます。

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

返り値: 選択されたファイル(キャンセルされた場合は空) またはエラー

OpenMultipleFilesDialog​

ユーザに複数ファイルの選択を求めるダイアログを開きます。 OpenDialogOptionsを使用してカスタマイズできます。

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

返り値: 選択された複数ファイル(キャンセルされた場合はnil) またはエラー

SaveFileDialog​

保存の目的でユーザにファイル名を入力選択させるダイアログを開きます。 SaveDialogOptionsを使用してカスタマイズできます。

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

返り値: 入力選択されたファイル(キャンセルされた場合は空) またはエラー

MessageDialog​

メッセージダイアログを使用してメッセージを表示します。 MessageDialogOptionsを使用してカスタマイズできます。

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

返り値: 選択されたボタンのテキストまたはエラー

オプション​

OpenDialogOptions​

type OpenDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
ResolvesAliases bool
TreatPackagesAsDirectories bool
}
フィールド説明WinMacLin
DefaultDirectoryダイアログが開かれたときに初期表示するディレクトリ✅✅✅
DefaultFilenameデフォルトファイル名✅✅✅
Titleダイアログのタイトル✅✅✅
Filtersファイルフィルタのリスト✅✅✅
ShowHiddenFilesシステムの隠しファイルを表示✅✅
CanCreateDirectoriesユーザによるディレクトリの作成を許可する✅
ResolvesAliasesエイリアスではなくファイルパスを返す✅
TreatPackagesAsDirectoriesパッケージへのナビゲーションを許可✅

SaveDialogOptions​

type SaveDialogOptions struct {
DefaultDirectory string
DefaultFilename string
Title string
Filters []FileFilter
ShowHiddenFiles bool
CanCreateDirectories bool
TreatPackagesAsDirectories bool
}
フィールド説明WinMacLin
DefaultDirectoryダイアログが開かれたときに初期表示するディレクトリ✅✅✅
DefaultFilenameデフォルトファイル名✅✅✅
Titleダイアログのタイトル✅✅✅
Filtersファイルフィルタのリスト✅✅✅
ShowHiddenFilesシステムの隠しファイルを表示✅✅
CanCreateDirectoriesユーザによるディレクトリの作成を許可する✅
TreatPackagesAsDirectoriesパッケージへのナビゲーションを許可✅

MessageDialogOptions​

type MessageDialogOptions struct {
Type DialogType
Title string
Message string
Buttons []string
DefaultButton string
CancelButton string
}
フィールド説明WinMacLin
Typeメッセージダイアログの種類 (質問、情報など)✅✅✅
Titleダイアログのタイトル✅✅✅
Messageユーザに表示するメッセージ✅✅✅
Buttonsボタンテキストのリスト✅
DefaultButton指定されたテキストのボタンをデフォルトボタンとして扱う。 returnキーにバインドされます。✅*✅
CancelButton指定されたテキストのボタンをキャンセルボタンとして扱う。 escapeキーにバインドされます。✅

Windows​

Windowsでは、ボタンのカスタマイズができない標準ダイアログタイプがあります。 返却される値は次のいずれかとなります: "Ok"、"Cancel"、"Abort"、"Retry"、"Ignore"、"Yes"、"No"、"Try Again"、"Continue"。

質問ダイアログの場合、デフォルトボタンは"Yes"、キャンセルボタンは"No"となります。 この設定は、DefaultButtonの値を"No"にすることで、変更できます。

例:

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

Linux​

Linuxでは、ボタンのカスタマイズができない標準ダイアログタイプがあります。 返り値は次のいずれかになります: "Ok"、"Cancel"、"Yes"、"No"

Mac​

Macのメッセージダイアログでは、最大4つまでのボタンを指定できます。 DefaultButtonやCancelButtonが指定されていない場合、1番目のボタンがデフォルトボタンとして扱われ、returnキーにバインドされます。

例えば次のようなコードの場合:

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

1番目のボタンがデフォルトになります:


そしてDefaultButtonを"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",
})

2番目のボタンがデフォルトになります。 このときreturnキーが押されると、返り値として"two"が返却されます:


また、CancelButtonを"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",
})

ダイアログの下部に"three"ボタンが表示されるようになります。 このときescapeキーが押されると、返り値として"three"が返却されます:




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では、ダイアログボックスで複数のファイルフィルタを使用できます。 それぞれのFileFiltersは、ダイアログ上で個別のエントリーとして表示されます:




Linux​

Linuxでは、ダイアログボックスで複数のファイルフィルタを使用できます。 それぞれのFileFiltersは、ダイアログ上で個別のエントリーとして表示されます:




Mac​

Macのダイアログでは、ファイルをフィルタするためのパターンセットは1つしか持たせることができません。 もし複数のFileFiltersを定義した場合、Wailsはそれらすべてのパターンを使用します。

例:

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

このとき、ファイル選択ダイアログを開くと、*.png,*.jpg,*.mov,*.mp4がフィルタとして使用されます。