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

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

Go言語/Fyneでボタンにアイコンを表示させる方法

      2021/10/22

Go言語用GUIライブラリFyneでボタンにアイコンを入れる方法です。ただ、あらかじめ用意されたアイコンしか表示できないみたいで、独自アイコンを挿入する方法はありません。(まだソースコードを読み切れていないだけかも…)

以下がボタンの一例です。以下の12個はあくまで一例で、全部で62アイコンが用意されています。

 

以下が上記ボタンを表示させるソースコードです。前回まではNewButtonメソッドを使いましたが、アイコン付きボタンはNewButtonWithIconメソッドです。

package main

import (
  "fyne.io/fyne"
  "fyne.io/fyne/app"
  "fyne.io/fyne/layout"
  "fyne.io/fyne/theme"
  "fyne.io/fyne/widget"
)

func main() {
  app := app.New()
  app.Settings().SetTheme(theme.LightTheme())

  window := app.NewWindow("ButtonIcon")

  btn01 := widget.NewButtonWithIcon("CancelIcon", theme.CancelIcon(), func() {})
  btn02 := widget.NewButtonWithIcon("CheckButtonCheckedIcon", theme.CheckButtonCheckedIcon(), func() {})
  btn03 := widget.NewButtonWithIcon("ConfirmIcon", theme.ConfirmIcon(), func() {})
  btn04 := widget.NewButtonWithIcon("ContentAddIcon", theme.ContentAddIcon(), func() {})
  btn05 := widget.NewButtonWithIcon("ContentClearIcon", theme.ContentClearIcon(), func() {})
  btn06 := widget.NewButtonWithIcon("ContentCopyIcon", theme.ContentCopyIcon(), func() {})
  btn07 := widget.NewButtonWithIcon("ContentCutIcon", theme.ContentCutIcon(), func() {})
  btn08 := widget.NewButtonWithIcon("ContentPasteIcon", theme.ContentPasteIcon(), func() {})
  btn09 := widget.NewButtonWithIcon("ContentRedoIcon", theme.ContentRedoIcon(), func() {})
  btn10 := widget.NewButtonWithIcon("ContentRemoveIcon", theme.ContentRemoveIcon(), func() {})
  btn11 := widget.NewButtonWithIcon("ContentUndoIcon", theme.ContentUndoIcon(), func() {})
  btn12 := widget.NewButtonWithIcon("DeleteIcon", theme.DeleteIcon(), func() {})

  box := fyne.NewContainerWithLayout(layout.NewFixedGridLayout(fyne.NewSize(250, 35)),
         btn01, btn02, btn03, btn04, btn05, btn06, btn07, btn08, btn09, btn10, btn11, btn12)
  window.SetContent(box)
  window.Resize(fyne.NewSize(520, 50))
  window.ShowAndRun()
}
 

 

実行するとこんな感じでボタンが並びます。

 

VSCodeの拡張機能を使えば簡単にアイコンの種類を検索できますが、以下のパッケージのソースコードを見ても確認することができます。Fyneはまだドキュメントが貧弱ですからね。

<GOPATH>/src/fyne.io/fyne/theme/icons.go
 

 

Icon(で検索するとヒットします。Fyneはまだ新しいこともあってネットに情報があまり転がっておらず、ソースコードを読んだほうが早い場合がありますね。

 

■ Fyneの導入方法はこちらを参考に

 

スポンサーリンク

 - Fyne, Go言語