非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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()
}
 

 

実行結果はご覧の通りです。

 

スポンサーリンク

 - Fyne, Go言語