文字入力ダイアログボックスのサンプルです。
プロジェクトの作成
mkdir dialogmemo
cd dialogmemo
Make-GoWalk.ps1
Make-GoWalk.ps1は次の記事を参照


Go言語でWALKを使うプロジェクトを作成するPowerShellスクリプト
manifestというファイルが必要で毎度コピーするのも少し面倒なので、スクリプトを作ってみました。PowerShell.exeからテキストエデッタで$profilesを開き以下の関数を追加する。function Make-GoWalk{$...
ソースコード
ファイル名:dialogmemo.go
package main
import (
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
)
func main() {
var mw *walk.MainWindow
MainWindow{
AssignTo: &mw,
Title: "クリックして入力",
MinSize: Size{Width: 400, Height: 300},
Layout: VBox{MarginsZero: true},
OnMouseDown: func(x, y int, button walk.MouseButton) {
if button == walk.LeftButton {
input, ok := showInputDialog(mw, "名前を入力してください")
if ok {
mw.SetTitle(input)
}
}
},
}.Run()
}
// ダイアログ関数:文字列を入力するダイアログを表示
func showInputDialog(owner walk.Form, prompt string) (string, bool) {
var (
dialog *walk.Dialog
le *walk.LineEdit
result string
)
okClicked := false
Dlg := Dialog{
AssignTo: &dialog,
Title: "入力ダイアログ",
MinSize: Size{Width: 300, Height: 100},
Layout: VBox{},
Children: []Widget{
Label{
Text: prompt,
},
LineEdit{
AssignTo: &le,
},
Composite{
Layout: HBox{MarginsZero: true},
Children: []Widget{
PushButton{
Text: "OK",
OnClicked: func() {
result = le.Text()
okClicked = true
dialog.Accept()
},
},
PushButton{
Text: "キャンセル",
OnClicked: func() {
dialog.Cancel()
},
},
},
},
},
}
Dlg.Run(owner)
return result, okClicked
}
ビルド
go build
実行イメージ
実行
./dialogmemo.exe
ウィンドウをクリックするとダイアログボックスが表示されます。
文字を入力しOKボタンを押します。
入力した文字がタイトルに表示されます。
コメント