본문 바로가기

go언어

(17)
Golang GUI(Webview) - HTML 파일 분리 이번에는 Webview 라이브러리를 사용하면서 HTML 파일을 별도로 분리하는 방법을 알아보겠습니다. 그리고, 좀더 보기좋은 GUI 구성을 위해 부트스트랩도 함께 적용하도록 하겠습니다. 사실 이부분은...CSS 파일을 별도로 인식시켰으면 좋겠지만, 아직까지 별도의 CSS파일을 적용시키는 것은 안되는 것 같습니다. 1. 라이브러리 설치 라이브러리 설치는 이전 강좌를 참고하세요. 2. main.go 파일 작성 main.go 파일에 전체 프로그램 구동을 구현합니다. 아울러, 버튼을 클릭했을 때 동작할 함수(go_hello)를 작성하고, 바인딩해줍니다. Webview라이브러리를 활용하면, go에서 javascript를 실행할 수도 있고, html파일(javascript 포함)에서 go언어를 실행할 수도 있습니다..
Golang GUI(Webview) - 시작하기 Go언어 GUI 라이브러리 중 Webview를 사용해서 데스크탑 앱을 만들어보도록 하겠습니다. Webview는 HTML로 레이아웃을 구성할 수 있어서 간단한 앱은 쉽게 만들 수 있습니다. 1. 라이브러리 설치 이번엔 리눅스환경에서(우분투 20.04) 라이브러리를 설치하겠습니다. sudo apt-get install libgtk-3-dev sudo apt-get install libwebkit2gtk-4.0-dev go get github.com/webview/webview 2. Sample Project 다음으로 간단히 main.go 파일을 생성하고, 아래와 같이 작성해줍니다. package main import "github.com/webview/webview" func main() { w := web..
Go언어 - Lorca GUI 간단한 메모장 이번에는 모듈 구분을 하여 코드를 좀 다듬어보려고 합니다. 아직 Lorca는 예제가 많지도 않고, 튜토리얼이 있는 상태도 아니어서 혼자 여러가지 방식을 시도해 보는 중입니다. 어쨌든 목적은 Control, View와 Function을 다른 파일에 나누어 구성하는 것입니다. 1. lorca_ex.go(Control파일) 앱의 시작부분으로 Control에 해당하는 역할을 합니다. 함수 바인딩을 이곳에서 정의합니다. 그리고 index.html을 불러와서 data에 저장한 뒤 url.PathEscape메서드에 string형태의 인자로 넘겨주는 방식으로 수정해 주었습니다. package main import ( "io/ioutil" "net/url" "github.com/zserge/lorca" ) var ui ..
Go언어 - Lorca GUI 라이브러리 Go 언어로 구현된 라이브러리들도 상당히 많습니다. (https://github.com/avelino/awesome-go#gui). 이전에 Fyne, Gotk3, andlabs/ui, sciter 에 대해서 포스팅한 적이 있는데요...최대한 설치할 것들이 적고 쉽게 구축 가능한 라이브러리들을 찾아보고 있었습니다. 그러던 중 Lorca라는 것을 발견했는데요. 오늘은 이 Lorca 를 한번 사용해보겠습니다. Lorca는 HTML 문법을 사용하여 매우 쉽게 UI를 구성할 수 있다는 장점이 있습니다. 비슷하게는 Webview가 있는데, 가볍고 build된 파일도 용량이 매우 작지만 설치시 조금 애로가 있을 수 있고, 세부설정도 Lorca보다는 조금 어렵다고 합니다. 반대로 얘기하면, Lorca는 설정할 수 있는..
Go언어 GUI 시스템 트레이에 아날로그 시계 만들기 with go-sciter 지금까지 만든 시계앱을 시스템 트레이로 만들어보도록 하겠습니다. 만들고 나면 이런 모양의 시스템 트레이가 하나 생성되게 됩니다. (Windows 기준). 모든 소스는 아래 공개해 놓았으며, 이전포스트는 굳이 참고하지 않아도 문제없습니다. 이미지는 다른 시계 예제에서 다운받아 온 것인데, 나름 귀엽네요. 그럼 이제 본격적으로 들어가보도록 하겠습니다. 1. 파일 정리 우선 지금까지는 main.go와 main.html에서 각각 기능과 뷰를 담당했는데, 앞으로는 시스템 트레이 프로그램이 메인이 되고, 거기서 clock 프로그램을 불러오는 방식으로 수정하도록 하겠습니다. main.go : 시스템 트레이 실행 (시계 프로그램 불러오기) ㄴ clock.go : 시계 프로그램 실행 (윈도우 생성 / 뷰 불러오기, 기존..
Go언어 GUI 아날로그 시계 만들기 with go-sciter go-sciter를 이용하여 아날로그 시계를 구현해보도록 하겠습니다. go-sciter를 이용한 프로그램은 데이터처리를 위한 .go 파일과 뷰 제어를 위한 .html파일로 구성이 되어있는데요, 오늘은 아날로그 시계 만들기는 html에서 시계의 움직임까지 표현해주고, .go파일에서는 그냥 html을 로딩하는 역할만 하게됩니다. 우선 결과물은 아래와 같이 나옵니다. 그럼, 소스는... 1. main.go (기본적인 html 로딩 포맷으로 기존과 동일) package main import ( "fmt" sciter "github.com/sciter-sdk/go-sciter" "github.com/sciter-sdk/go-sciter/window" ) // Specifying havily used // Sing..
Go언어 GUI 투명한 날짜 표시 프로그램 with go-sciter 간단히 날짜 표시하는 앱을 구현해보겠습니다. 1.main.go package main import ( "fmt" "time" sciter "github.com/sciter-sdk/go-sciter" "github.com/sciter-sdk/go-sciter/window" ) // Specifying havily used // Singltons to make them // package wide available var root *sciter.Element var rootSelectorErr error var w *window.Window var windowErr error // Preapare Scitre For Execution /// func init() { // initlzigin window fo..
Go언어 GUI 투명한 앱 만들기 with go-sciter 윈도우에서 위젯같은 프로그램을 만들려고 프레임/배경/타이틀바 등을 투명하게 할 수 있는 라이브러리를 찾다가 go-sciter라는 것을 찾았습니다. (다른 라이브러리로 투명 구현하려고 한참동안 헤메었네요.ㅜㅜ) sciter는..화면 구성은HTML, CSS를 쓰고 tiscript라는 스크립트로 뷰를 제어하고, 실행 부분에서는 golang, python, rust, c# 등 다양한 언어로 구축할 수 있습니다. 물론 무료이구요. (실행 파일 내부에 sciter.dll을 포함시키기 위해서는 돈을 내야 한다고 합니다. 배포시 sciter.dll을 한 폴더에 같이 배포하면 문제는 없겠네요.) 설치는..1.SDK 설치: sciter.com/download/ 에서 SDK를 다운받아 압축을 해제하고, \sciter\bin..