Fyne   Center

ホーム   Goチュートリアル

Center


この章では、ウィンドウをスクリーンの中央に表示する方法と、そしてウィジェットをウィンドウの中央に表示する方法を説明しています。 ウィジェットとはウィンドウの中に配置する部品です。


アプリケーションディレクトリの作成

ターミナルを起動して、次のようにしてアプリケーション作成の下準備をします。 ディレクトリはどこでも構いませんが、Documents などに go か fyne などのディレクトリを作って、さらに次のようにディレクトリを作るのが良いでしょう。


mkdir Center
cd Center
go mod init example.com/Center

// 通常は、example.com の部分を、あなたが持っているURLにします。
// デフォルトでは、スラッシュ(/)の次の名前がアプリの名前になります。
    


コードの記述

次のファイルを記述します。main 関数を記述しているファイルは、 main.go とするのが一般的ですが、好きなファイル名にしても構いません。

center.go


package main

import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/layout"
	"fyne.io/fyne/v2/widget"
)

func main() {
	app := app.New()
	win := app.NewWindow("Center")
	center := widget.NewLabel("I am in the center.")
	content := container.New(layout.NewCenterLayout(), center)
	win.SetContent(content)
	win.Resize(fyne.NewSize(400, 200))
	win.CenterOnScreen()
	win.ShowAndRun()
}                                        
	


パッケージの読み込み

コードの記述が完了しましたら、次のようにして実行します。


go run center.go

// 次のようにパッケージをインストールしてくださいという表示が出ます。
center.go:3:8: no required module provides package fyne.io/fyne/v2; to add it:
	go get fyne.io/fyne/v2
center.go:4:8: no required module provides package fyne.io/fyne/v2/app; to add it:
	go get fyne.io/fyne/v2/app
center.go:7:8: no required module provides package fyne.io/fyne/v2/container; to add it:
	go get fyne.io/fyne/v2/container
center.go:6:8: no required module provides package fyne.io/fyne/v2/layout; to add it:
	go get fyne.io/fyne/v2/layout
center.go:5:8: no required module provides package fyne.io/fyne/v2/widget; to add it:
	go get fyne.io/fyne/v2/widget

// 指示のとおりインストールします。
go get fyne.io/fyne/v2
go get fyne.io/fyne/v2/app
go get fyne.io/fyne/v2/container
go get fyne.io/fyne/v2/layout
go get fyne.io/fyne/v2/widget

// もう一度実行してみます。
go run center.go
    


実行結果

デフォルトでは、Windows では白いウィンドウ、macOS と Linux では黒いウィンドウになります。

ウィンドウはスクリーンの中央に表示されます。 ラベル(label)もウィンドウの中央に表示されます。

ウィンドウの大きさを変えてもラベルは常に中央に表示されます。


アプリケーションのパッケージ化

アプリケーションのパッケージ化は、ダブルクリックで起動する、 アイコンのついたファイルにすることです。

アイコンを自作するか、次のサイトなどからお気に入りのアイコンをダウンロードします。 大きさは一番大きい 512px のものを、種類は png にします。Fyne では png 形式のファイルしかアイコンに変換できないみたいです

フリーアイコンSVG、PNG、ICO、ICNS

アイコンの準備ができましたら、Center ディレクトリの中に入れます。 そしてターミナルに次のようにコマンドしてパッケージ化します。


fyne package -os darwin -icon leaf.png

// -os のところは、Windows の場合は windows、macOS の場合は darwin、Linux の場合は linux にします。
// -icon のところは、あなたが png ファイルにつけた名前にします。
    


アイコン付きの実行ファイル

どの場所に移動しても起動します。Windows の場合も DLL エラーを気にせずに移動することができます。


コード説明

コード説明は割愛して、先に進みます。また戻ってきてコード説明をしたいと思います。


Linux でアプリケーションにアイコンを付ける方法

Center ディレクトリに出来上がった Ceter.tar.gz を解凍します。解凍された Center ディレクトリの中の usr/local/bin に Center 実行ファイルが出来ています。この実行ファイル をダブルクリックするとアプリケーションが起動します。 どこの場所へ移動しても起動します。しかしアイコンはついていません。

Linux でアイコンをつけるには次の作業が必要です

次の場所に Center 実行ファイルとアイコンファイルをコピーまたは移動します。

/home/ユーザー名/.local/share/applications

applications ディレクトリに次の center.desktop ファイルを作成します。

center.desktop


[Desktop Entry]
Type=Application
Version=1.0
Name=Center
Exec=/home/ユーザー名/.local/share/applications/Center
Icon=/home/ユーザー名/.local/share/applications/leaf.png
Comment=I am Center
Categories=
    

コード説明

  1. Version は、Cebter 実行ファイルのバージョンで関係なく、1.0 としておきます。 もしくは記述しなくても大丈夫です。
  2. Comment は、Name と同じ文字列にすることはできません。
  3. Categories を指定しない場合は、「その他」に分類されます。
  4. 次のコマンドで center.desktop に間違いがないか確認できます。
    desktop-file-validate center.desktop
    何も表示されなければエラーはありません。
  5. center.desktop は、すぐに有効になる Linux もあれば、再ログイン後に有効になる Linux もあります。
  6. アクティビティなどで検索すると Center アプリケーションがアイコン付きで表示されます。


システム全体に登録する方法

上記の方法は、ユーザ専用に Center アプリケーションを登録する方法です。 システム全体 (全ユーザが使えるよう) に登録する場合は次のようにします。 ユーザ専用とシステム全体の両方がある場合は、ユーザ専用が優先されます。

  1. Center 実行ファイルは
    /usr/bin
    にコピーするか移動します。
  2. アイコンファイルは
    /usr/share/icons/hicolor/scalable/apps
    にコピーするか移動します。
  3. center.desktop は
    /usr/share/applications
    に作成します。

そして、center.desktop は、次のように記述します。

center.desktop


[Desktop Entry]
Type=Application
Version=1.0
Name=Center
Exec=Center
Icon=leaf.png
Comment=I am Center
Categories=
    

/usr/bin/usr/share/icons/hicolor/scalable/apps には、システムによってパスが通っていますので、ファイル名だけで OK です。


1331 visits
Posted: Jun. 21, 2021
Update: Jul. 05, 2021

ホーム   Goチュートリアル   目次