Go言語/Fyne:BorderLayoutの基本
2021/10/22
Go言語用のGUIツールキットFyneのレイアウトについて。GUIアプリといったらやはりBorderLayoutをおさえる必要ありますね。公式サイトのサンプルコードを試してみます。
Fyneの基本的な使い方はこちらを参考にしてください。
BorderLayoutのサンプルコードは下記からGETできます。下記リンクの4ページ目にあります。
https://developer.fyne.io/tour/layout/
これをコピペして単純に実行してみましょう。パッケージのインストールから実行までの手順は前回記事を参考にしてください。
実行すると以下のように小さいウィンドウが現れました。これではちゃんとレイアウトされているかよくわからないので…
ウィンドウを広げるとこんな感じになります。(点線はこちらで描き加えたもの)ちゃんとトップ、左サイド、中央にテキストが配置されていることがわかります。
次にちょっとコードを加えてみます。コメントで(追加)と書かれているところを加えています。1つはテーマをダークモードからライトモードにしたもの。もう1つはウィンドウサイズを大きくするコードです。それにあわせてimport文に2行追加します。
package main import ( "image/color" "fyne.io/fyne/v2" //(追加) "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/canvas" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/theme" //(追加) ) func main() { myApp := app.New() myWindow := myApp.NewWindow("Border Layout") //(追加)ライトテーマにする myApp.Settings().SetTheme(theme.LightTheme()) //(追加)ウィンドウサイズの設定 myWindow.Resize(fyne.NewSize(600, 400)) top := canvas.NewText("top bar", color.Black) left := canvas.NewText("left", color.Black) middle := canvas.NewText("content", color.Black) content := container.New(layout.NewBorderLayout(top, nil, left, nil), top, left, middle) myWindow.SetContent(content) myWindow.ShowAndRun() }
実行結果はご覧の通りです。
スポンサーリンク