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()
}
実行結果はご覧の通りです。
スポンサーリンク



