Go言語「WALK」文字入力ダイアログボックス

コンピュータ
文字入力ダイアログボックスのサンプルです。

プロジェクトの作成

mkdir dialogmemo
cd dialogmemo
Make-GoWalk.ps1

ソースコード

ファイル名: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ボタンを押します。

入力した文字がタイトルに表示されます。

コメント