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

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

Go言語でElectronアプリを作れるgotronを導入した!

      2021/02/13

Go言語でどうにかしてGUIアプリを作ろうと模索してきた中でFyneGTKを試してきましたが、ウィジェットが貧弱だったり他のプラットホームで使うにはちょっとハードル高いという印象です(その点、Windowsの.NETはうまくできているなー)。そんな中、Go言語でElectronを利用するためのgotronというライブラリがあると聞いて早速導入してみました。Electronであればウィジェットは豊富だしクロスプラットホーム対応なので期待したいところです。

 

まずはgotronをインストール

以下のコマンドでgotronをインストールします。

$ go get github.com/Equanox/gotron
 

 

libgconf-2-4パッケージが必要になるようなので、もしなければあらかじめインストールした方が良いでしょう。

$ sudo apt-get install libgconf-2-4
 

 

libgconf-2-4パッケージが存在しないと、後になって(go run 実行時に)こんな風に怒られますので。

 

ソースコード

ソースコードは、まずは最初はここに掲載されているサンプルプログラムで良いかと思います。これを任意のファイル名(僕はgotron01.go)で保存します。

package main

import (
    "github.com/Equanox/gotron"
)

func main() {
    // Create a new browser window instance
    window, err := gotron.New()
    if err != nil {
        panic(err)
    }

    // Alter default window size and window title.
    window.WindowOptions.Width = 1200
    window.WindowOptions.Height = 980
    window.WindowOptions.Title = "Gotron"

    // Start the browser window.
    // This will establish a golang <=> nodejs bridge using websockets,
    // to control ElectronBrowserWindow with our window object.
    done, err := window.Start()
    if err != nil {
        panic(err)
    }
    
    // Open dev tools must be used after window.Start 
    window.OpenDevTools()
    
    // Wait for the application to close
    <-done
}
 

 

実行

以下のコマンドで実行します。

$ go run gotron01.go
 

 

実行すると以下のようにElectronパッケージのインストールが始まります。一発目はその分時間がかかります。

 

しばらくすると、以下のようなウィンドウが起動します。これが起動すれば成功です。

 

スポンサーリンク

 - Electron, Go言語