mieki256's diary



2020/09/27() [n年前の日記]

#1 [prog] Go の GUIライブラリ Fyne を試用

Go で使えるGUIライブラリについてググってたら、Fyne というライブラリがあると知り、気になったので少し試用してみたり。環境は Windows10 x64 2004 + MSYS2 MinGW w64 64bit + Go 1.14.4 64bit。

_Go言語でGUIライブラリのFyneを試してみた | ITオムライス

ほとんど参考ページの通りに作業。

MSYS2 + MinGW w64 上で動かすとすんなり使えるらしいので、MSYS2 MinGW 64-bit を起動して作業。

必要なパッケージをインストール。
pacman -S mingw-w64-x86_64-go
pacman -S git
pacman -S gcc
pacman -S base-devel
pacman -S mingw-w64-x86_64-toolchain
$ go version
go version go1.14.4 windows/amd64

$ gcc --version
gcc.exe (Rev3, Built by MSYS2 project) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.   There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A  PARTICULAR PURPOSE.

Fyne をインストール。
go get fyne.io/fyne
何かバージョンが違うとエラーが出たけれど、自分の環境の ~/.bashrc 内で、環境変数 GOROOT を設定してたのが良くなかったらしい。GOROOT を再設定しないように関連行をコメントアウトしたらエラーが出なくなった。

Hello World をしてみる。

_Create your first Fyne app - Fyne

hellofyne.go を作成。
package main

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

func main() {
        a := app.New()

        w := a.NewWindow("Hello")
        w.SetContent(widget.NewVBox(
                widget.NewLabel("Hello Fyne!"),
                widget.NewButton("Quit", func() {
                        a.Quit()
                }),
        ))

        w.ShowAndRun()
}

ビルドして実行してみる。
go build hellofyne.go
hellofyne.exe
すんなりウインドウが表示された。

デモを動かしてみる。
go get fyne.io/fyne/cmd/fyne_demo
fyne_demo
MSYS2上でも動いてくれた。色んなウィジェットを表示できるっぽい。

関連ツールをインストール。アイコン画像を指定したりする場合は、fyne というツールが必要になるらしいので一応入れておく。

_Fyne でのアイコンや画像の取り扱い | blog - lusingander

go get fyne.io/fyne/cmd/fyne

Ubuntu 20.04LTS上でも試してみた。 :

VMware Player + Ubuntu Linux 20.04 LTS上でも試してみた。Windowsと同様にウインドウが表示された。クロスプラットフォーム対応というのは本当らしい。素晴らしい。

以上です。

過去ログ表示

Prev - 2020/09 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project