文字入力ダイアログボックスのサンプルです。
  
      
      
      
    
プロジェクトの作成
mkdir dialogmemo
cd dialogmemo
Make-GoWalk.ps1Make-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ボタンを押します。

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

コメント