반응형
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 라고 한줄을 추가해 넣습니다.
비교적 간단하네요. 이렇게 설정하고 실행해봅시다.
네,,,잘~ 나옵니다.
그럼 모두 건승하세요~
~~끝~~
반응형
'Programming > Golang' 카테고리의 다른 글
Go언어 - Fyne timer예제 (0) | 2021.01.01 |
---|---|
Go언어 - Fyne 아이콘 이미지 설정 (0) | 2021.01.01 |
Go언어 - Lorca GUI CSS 적용하기 (0) | 2020.12.18 |
Go언어 - Gin Framework(5강 JSON/XML응답) (0) | 2020.12.15 |
Go언어 - Gin Framework(4강 개별 Article 화면 구성) (0) | 2020.12.15 |