본문 바로가기
Programming/Golang

Go언어 - Fyne 한글 폰트 설정

by Wilkyway 2021. 1. 1.
반응형

Fyne를 이용해 GUI를 만들던 중 한글 출력이 안된다는 것을 뒤늦게 알게 되었네요.(아래 화면 참조). 오늘은 한글 설정하는 방법에 대해 알아보겠습니다. 샘플로 간단한 메모장 앱을 만들어보겠습니다.

 

 

1. main.go

위 샘플로 만든 앱의 코드는 아래와 같습니다.

package main

import (
	"fmt"
	"image/color"
	_ "unicode/utf8"

	"fyne.io/fyne"
	"fyne.io/fyne/app"
	"fyne.io/fyne/canvas"
	"fyne.io/fyne/layout"
	"fyne.io/fyne/theme"
	"fyne.io/fyne/widget"
)

func main() {
	f := app.New()
	//f.Settings().SetTheme(theme.LightTheme())
	f.Settings().SetTheme(theme.DarkTheme())
	w := f.NewWindow("")

	//상단에 넣을 위젯 및 레이아웃 - NewFormLayout
	qry := widget.NewEntry()
	btn_go := widget.NewButton("New Memo", New_btn)

	text := canvas.NewText("Text Object", color.White)
	text.Alignment = fyne.TextAlignTrailing
	text.TextStyle = fyne.TextStyle{Italic: true}

	ret := fyne.NewContainerWithLayout(layout.NewFormLayout())
	ret.AddObject(btn_go)
	ret.AddObject(qry)

	//하단에 넣을 위젯 및 전체 레이아웃 구성 - NewBorderLayout
	label2 := widget.NewLabel("Simple Memo")
	labox2 := fyne.NewContainerWithLayout(layout.NewCenterLayout(), label2)

	b1 := widget.NewButton("Go1", func() { fmt.Println("Go1 Button") })
	b1.ExtendBaseWidget(b1)

	b2 := widget.NewButton("Go2", func() { fmt.Println("Go2 Button") })
	b2.ExtendBaseWidget(b2)

	out_entry := widget.NewMultiLineEntry()
	out_entry.SetPlaceHolder("결과...")
	out_entry.ExtendBaseWidget(out_entry)

	frm := fyne.NewContainerWithLayout(layout.NewBorderLayout(ret, labox2, nil, nil)) //상, 하, 좌(없음), 우(없음)
	frm.AddObject(ret)                                                                //상단
	frm.AddObject(labox2)                                                             //하단
	frm.AddObject(out_entry)                                                          //좌-우가 없으므로 5번째에(center) 추가됨

	w.SetContent(frm)
	w.Resize(fyne.Size{Height: 640, Width: 480})
	w.ShowAndRun()

}

2. 한글 폰트파일 다운로드

네이버에서 '나눔고딕 다운' 으로 검색하면 무료로 다운받을 수 있는 폰트 링크들이 나타납니다.

 

 

 

기본이 되는 폰트를 다운받아서 현재의 프로젝트 폴더에 위치시킵니다.

 

 

 

3. IDELite 환경설정

다음으로 환경설정에 변수를 추가해주도록 하겠습니다. Tools -> Edit current environment 메뉴로 가서..

 

 

FYNE_FONT=NanumGothic.ttf 라고 한줄을 추가해 넣습니다.

 

 

 

비교적 간단하네요. 이렇게 설정하고 실행해봅시다.

 

 

네,,,잘~ 나옵니다.

그럼 모두 건승하세요~

 

~~끝~~

반응형

댓글