Go言語/Fyne:テキストボックス(MultiLineEntry)
Go言語用のGUIツールキットFyneのウィンドウトップにテキストボックスを設置する方法について解説します。
ベースとなるプログラムは前回のソースコード(BorderLayoutのトップにツールバーを設置したもの)をベースにすることにします。
今回の完成形はこちらです。BorderLayoutのMiddleにマルチラインのテキストボックスを設置しています。テキストボックスの初期色はグレーです、
ソースコードはこちら。前回記事に「追加」と書かれたコメント以下を追加してもらえればOKです。
package main import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" ) func main() { myApp := app.New() myWindow := myApp.NewWindow("Border Layout") myApp.Settings().SetTheme(theme.LightTheme()) myWindow.Resize(fyne.NewSize(600, 400)) toolbar := widget.NewToolbar( widget.NewToolbarAction(theme.DocumentCreateIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarAction(theme.FolderOpenIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarAction(theme.DocumentSaveIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarSeparator(), //セパレーター widget.NewToolbarAction(theme.ContentCutIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarAction(theme.ContentCopyIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarAction(theme.ContentPasteIcon(), func() { /* ここにボタン押下後の処理を書く */ }), widget.NewToolbarSpacer(), //スペーサー widget.NewToolbarAction(theme.HelpIcon(), func() { /* ここにボタン押下後の処理を書く */ }), ) //追加 textBox := widget.NewMultiLineEntry() content := container.New(layout.NewBorderLayout(toolbar, nil, nil, nil), toolbar, textBox) myWindow.SetContent(content) myWindow.ShowAndRun() }
実行してテキストを入力した例がこちらです。タブはちゃんと入力できました。日本語は文字化けしますね。とうふ化(□□□)してしまいました。日本語は対応していないようです。
スポンサーリンク