Go Fyne 했어요.
15507 단어 Go
안녕하세요.@af-2784.
입사 1년 반 동안 로트와 API 등 Go회사에서 후방 중심의 개발을 진행했다
가끔은 GUI 개발도 해보고 싶고 매력적인 그림을 만들고 싶다...!
찾아보니 Go에 GUI 라이브러리Fyne가 있다는 걸 알았고, 이번에는 여기를 살짝 만져보고 싶었어요.
차리다
Fyne을 설치합니다.
$ go get fyne.io/fyne/v2/app
$ go get fyne.io/fyne/v2/widget
$ go get fyne.io/fyne/v2/container
$ go get fyne.io/fyne/v2/canvas
Hello World무슨 일이든 Hello World부터 시작해.
hello := widget.NewLabel("Hello World!")
와 같이 창에 표시할 객체를 정의하고 SetContentent에 정의된 객체를 넣으면 GUI 화면에 표시됩니다.package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
"fyne.io/fyne/v2/container"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello World!")
w.SetContent(container.NewVBox(
hello,
))
w.ShowAndRun()
}
이렇게 하면 다음과 같은 창이 표시됩니다.!버튼 추가
방금 Hello World 화면에 버튼을 추가해서 창의 텍스트를 바꾸려고 합니다.
방금 코드에 다음과 같은 내용을 추가합니다.
widget.NewButton("Button", func() {
hello.SetText("Merry Christmas!")
}),
전체 이미지package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
"fyne.io/fyne/v2/container"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello World!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Button", func() {
hello.SetText("Merry Christmas!")
}),
))
w.ShowAndRun()
}
이것을 실행하면 버튼이 표시됩니다.버튼을 누르면 텍스트가
Hello World!
에서 Merry Christmas!
!종료 버튼 추가
일반 GUI 애플리케이션처럼 창의 왼쪽 위 모서리에 있는 닫기 버튼을 누르면 창을 닫을 수 있지만 Fyne 자체 닫기 버튼을 사용할 수도 있습니다.
방금 프로그램에 다음 내용을 추가합니다.main 함수에 대해 최초로 정의된 변수
a := app.New()
를 실행하여Quit () 를 실행하면 프로그램을 끝낼 수 있습니다.widget.NewButton("Quit", func() {
a.Quit()
}),
전체 이미지package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
"fyne.io/fyne/v2/container"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello World!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Button", func() {
hello.SetText("Merry Christmas!")
}),
widget.NewButton("Quit", func() {
a.Quit()
}),
))
w.ShowAndRun()
}
이것을 실행하면 버튼이 하나 추가됩니다.새로 추가된 Quit
단추를 누르면 창이 사라집니다.객체 표시 또는 삭제
먼저 다음 변수를 정의합니다.Hello World에서 정의한 New Label()과 비슷하게 새 텍스트 객체를 정의할 수 있지만, canvas를 사용하면 객체의 색상을 변경하고 객체를 이동하며 다양한 작업을 할 수 있습니다.
text := canvas.NewText("Mele Kalikimaka", color.RGBA{255, 0, 0, 255});
그런 다음 SetContent에서 다음을 추가합니다.Visible()을 사용하여 객체가 현재 화면에 표시되는지 확인할 수 있습니다.객체를 표시할 때는 Hide()로 숨기고, 객체를 표시하지 않을 때는 Show()로 표시합니다.text,
widget.NewButton("ON/OFF", func() {
if text.Visible() {
text.Hide()
} else {
text.Show()
}
}),
전체 이미지package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/canvas"
"image/color"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello World!")
text := canvas.NewText("Mele Kalikimaka", color.RGBA{255, 0, 0, 255});
w.SetContent(container.NewVBox(
hello,
text,
widget.NewButton("ON/OFF", func() {
if text.Visible() {
text.Hide()
} else {
text.Show()
}
}),
widget.NewButton("Button", func() {
hello.SetText("Merry Christmas!")
}),
widget.NewButton("Quit", func() {
a.Quit()
}),
))
w.ShowAndRun()
}
이거 해볼게요.위 상태에서
ON/OFF
버튼을 누르면 Mele Kalikimaka
이 문자가 사라집니다.그리고 다시
ON/OFF
단추를 누르면 다시 Mele Kalikimaka
표시됩니다.총결산
Fyne을 능숙하게 이용할 수 있다면 게임, 메모장 등 다양한 GUI 애플리케이션을 만들 수 있다.다음 사이트에서는 Fyne을 사용하는 다양한 애플리케이션을 제공합니다.
https://apps.fyne.io/all
이번에는 초보적인 부분만 접했지만 시간이 있을 때는 Fyne도 많이 접하고 싶어요.
Reference
이 문제에 관하여(Go Fyne 했어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/af-2784/items/962bc6b4f7f69380be82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)