본문 바로가기
반응형

Go언어19

Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #9 이번엔 가장 활용도가 높은 편인 테이블뷰에 대해서 알려드리겠습니다. 우선;; interface{}를 사용해서 조금 고급지게 리스트박스를 위한 모델구조를 잡고 하면 보긴 좋긴 하겠으나 애초에 그냥 막 짜서 적용해서 쓰기 바쁜 와중에 만들어 쓴 코드고.. lxn/walk 의 샘플 코드에 존재하는 것들을 크게 건드리지 않고 사용하다보니 그닥 맘에 드는 구조는 아니라는 점은 미리 말씀드립니다. 우선 테이블을 구성하기 위해서는 2개의 구조체와 몇가지 메소드를 미리 작성하셔야 합니다. /** *TestListItem **/ type TestListItem struct { Name string Level int Sex int Class string checked bool } /** *TestListModel **/ .. 1일1고(111GO) | 2022. 1. 11.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #7 이번엔 각종 설정창 등을 만드는데 어찌보면 가장 유용하게 사용하는 체크박스(Checkbox)에 대해서 다뤄보도록 하겠습니다. func (m *WinResMgr) CheckBox(text string, checked bool, attachFunc func()) *walk.CheckBox CheckBox 메소드를 사용하시면 되구요. text string 인자는 체크박스 옆의 라벨 텍스트를 지정하는거고 checked bool 은 초기 기본 체크 상태입니다. true 면 생성시 체크가 된 상태로, false 이면 생성시 체크가 안된 상태로 생성됩니다. attachFunc func() 인자는 체크박스의 체크 상대가 변경될 시에 호출되는 이벤트 핸들러 함수를 지정하면 됩니다. func checkBoxTest1() .. 1일1고(111GO) | 2022. 1. 3.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #6 이번엔 EditText? EditBox? 여튼;; 텍스트고 숫자고 입력을 받는 놈을 다뤄보겠습니다. func (m *WinResMgr) NumberEdit() *walk.NumberEdit func (m *WinResMgr) LineEdit(ro bool) *walk.LineEdit func (m *WinResMgr) TextEdit(ro bool) *walk.TextEdit func (m *WinResMgr) TextArea(ro bool) *walk.TextEdit 이정도 되겠습니다.. ro bool 인자가 있는 놈들은 read only 에 대한 flag입니다. ro 값이 true 이면 수정이 불가능한 놈이 되겄지요. 각 함수의 차이점을 말씀 드리자면 .. NumberEdit - 숫자만 입력 가능한 .. 1일1고(111GO) | 2021. 12. 23.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #5 이번에는 각 UI구성 요소들에 대한 부분을 진행 해보도록 합시다. 대충 일반적으로 말하는 라벨(Label, Static Text), 에디트박스, 체크박스, 리스트박스, 이미지컨트롤, 콤보박스 이딴 것들에 대해 논해보도록 합니다. 이러한 놈들은 얼찌 배치 할지는 이전 시간에 다뤘으니까 이전글들 참고 하시고요, 그런 부분들은 직접 해보시면 충분할 거구요.. 그정도 코드도 직접 안짜보고 이해할꺼면 개발자 때려 쳐야죠.. 어디 ㅋㅋ 그런 정신 머리로 개발자 나부랭이를 해보겠다고 크앙! 우선 가장 많이 쓰이는 놈중 하나인 라벨을 먼저 갑시다. /** *MultiLineLabel **/ func (m *WinResMgr) MultiLineLabel(text string) *walk.Label { ne, _ := w.. 1일1고(111GO) | 2021. 12. 17.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #4 Go로 윈도 네이티브 GUI 줘 패기... 4번째 입니다. 이번엔 레이아웃에 대한 부분을 다뤄보도록 합니다. 앞서 C/C++에서 윈도 API를 가지고 GUI 어플리케이션을 만드는게 매우 비효율적인 노가다 개삽질이라는 식의 표현을 한적이 있는데요. 그 이유는 .. API에서 모든 UI객체는 전부다 윈도입니다. 창도 윈도 버튼도 윈도 에디트 박스도 체크박스도 스크롤바도 스크롤바 안의 상하단 버튼도 죄~~다 윈도입니다. 그 말은 그 하나하나를 다 CreateWindow 를 하고 그 각 객체별로 WndProc 같은 메시지 프로시저를 한땀 한땀 다 등록을 시켜야 한단 소리죠 그래야 키보드 입력이던 마우스 클릭이던 내용을 그리고 지우고 지지고 볶고 .. 가 가능합니다. 그렇게 수 없이 많은 반복적인 코드를 생성해야.. 1일1고(111GO) | 2021. 12. 10.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #3 Go언어로 윈도GUI .. 3번째 글입니다. 우선 관련 글들을 작성하면서 계속 사용하게될 소스파일 하나 먼저 던져 놓고 시작하겠습니다. walk_wrap.go 라고 매번 치기 귀찮으니 이놈, 저놈, 랩퍼 등등으로 쓸수 있으니 알아서 잘 보시기 바랍니다. 이놈에 대해 이래저래 쓰기 앞서서.. 웹 프로그래밍을 할때도 그렇고 GUI 프로그래밍을 할때도 그렇고 콘솔 프로그램과 달리 프로그램을 만들다 보면 메시지 박스를 띄워서 뭔가를 하거나 확인 창을 띄워야 하거나 하는 경우가 있습니다. 이런 놈들이죠.. 앞에 놈은 자바스크립트의 alert 같은 놈이고 뒤엣놈은 confirm 같은 놈입니다. 이렇게 메시지 박스나 확인창을 생성해주는 두 함수에 대해서 먼저 설명을 하고 넘어 가겠습니다. func MsgBox(msg.. 1일1고(111GO) | 2021. 12. 9.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #2 Go로 윈도 네이티브 GUI 프로그램만들기 2번째 입니다. 앞서 lxn/win, walk 2개 패키지는 go get 하셨을 테구요.. 보통 윈도 API 프로그래밍은 C/C++ 에서도 노가다의 최 정점에 놓여진 그런 놈입니다 ㅋㅋ 그게 싫어서 쓰는게 go 같은 언어들인거고 .. 그런 이유로 이 lxn/walk 의 경우에도 좀더 편하게 GUI를 만들수 있는 방법을 제공하는데요. 그게 lxn/walk 패키지에 포함된 declarative 라는 패키지 입니다. package main import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" "strings" ) func main() { var inTE, outTE *walk.TextEdit MainW.. 1일1고(111GO) | 2021. 12. 8.
Go로 MS 윈도 네이티브 GUI 프로그램 만들기 #1 앞서 크롤러 관련된 강좌를 하다 만게 있는데요.. 요청이 가장 많았어서 시작을 하긴 했는데 아무래도 크롤러가 개발자 입장으론 윤리문제가 좀 있는 영역이고 법적으로도 문제소지가 발생할 가능성이 매우 큰 영역이라 그걸 대놓고 강좌랍시고 하는건 좀 ;; 아닌것 같다는 피드백도 꽤 됫던 지라.. 크롤러 관련된 강좌는 하지 않겠습니다. 저는 Go개발에 MS의 Visual Studio Code를 사용합니다. 관련 사항은 이전 111GO 글을 참고바랍니다. 이번엔 Go언어로 마이크로소프트 윈도에서 동작하는 네이티브 GUI 프로그램을 만드는 법을 다뤄보려 합니다. 강좌라느니 그런 거창한건 아니구요. 그냥 피로곰이란 놈은 이런식으로 쓰고 있구나? 그정도.. 그리 잘 짜여진 코드도 아니고 배울만한 뭐 그런.. 그런거 아닙.. 1일1고(111GO) | 2021. 12. 8.
Tucker의 Go언어 프로그래밍 - 책 리뷰 https://youtu.be/YBNv-hwK03I 유튜브 채널에 업로드 한지는 한달이 넘언는데;; 블로그에 ;; 올리질 않안네요. 터커(Tucker)님의 Go언어 프로그래밍 개발서적에 대한 리뷰영상입니다. 피로곰TV | 2021. 6. 25.
마이크로소프트 Visual Studio Code 에서 GO언어 정식지원! 얼마전부터 관련 이야기들이 고퍼 커뮤니티들에서 나오곤 했는데 실제 발표가 났네요. https://www.zdnet.co.kr/view/?no=20200611172153 MS·구글, 손잡았다…VS코드에서 ‘고’ 지원 경쟁관계인 구글과 마이크로소프트(MS)가 프로그래밍 언어 지원을 위해 협력한다.​미국 지디넷은 10일(현지시간) 마이크로소프트가 오픈소스 코드편집기 비주얼스튜디오코드(VS코드)에서 고를 www.zdnet.co.kr "어? VS Code에서 Go언어 지원하는거 아니었나요?" 하실 분들이 계실텐데. VS Code가 Atom을 비롯한 꽤 많은 놈에 사용된 Eletron 프레임워크를 기반으로 만들어 진건 많이들 아실텐데요 사실 원류가 같다보니 VS Code가 출시된 초기에는 Sublime Text 등.. 기타 유용한것들 | 2020. 6. 12.
[1일1GO/0010] 프로그램 아이콘을 변경하자GO! 1일1GO 10번째 시간에서 작업한 프로젝트 파일은 위 압축파일을 다운로드 받으시면 됩니다. 추가된 파일은 baseapp.png baseapp_icon.ico 수정된 파일은 Makefile main.go 입니다. 영상중 png 이미지를 ico 파일로 변경하는데 사용한 사이트 링크입니다. https://icoconvert.com/ ICO Convert - Create Icons From PNG & JPG Images Online ICO Convert is a free online icon maker and favicon generator, with it you can make icons from png or jpg images, just upload a photo of yourself, resize and.. 1일1고(111GO) | 2020. 5. 30.
[1일1GO/0007] 영상관련 자료 1일1고(111GO) | 2020. 5. 9.
[1일1GO/0006] 관련 자료 링크 및 파일들 영상중 설치한 rsrc 패키지의 깃헙 링크는 다음과 같습니다 https://github.com/akavel/rsrc akavel/rsrc Tool for embedding .ico & manifest resources in Go programs for Windows. ⛺ - akavel/rsrc github.com 콘솔에서 go get github.com/akavel/rsrc 위 명령을 치시면 됩니다. ( 아무 메시지 없이 넘어가면 성공한겁니다 ) 영상에서 작성한 매니페스트 파일들과 Makefile 입니다. 1일1고(111GO) | 2020. 5. 4.
[1일1GO/0005] Make를 하자 GO! 1일1고(111GO) | 2020. 5. 3.
[1일1GO/0004] 웹서버 만들기 카테고리 없음 | 2020. 5. 3.
[1일1GO/0002] 모든 코드의 시작 package, import 1일1고(111GO) | 2020. 4. 26.
[1일1GO/0001] Go 프로그래밍 환경구성 오래전부터 프로그래밍에 관심을 가지는 분들에게 강좌 같은 걸 해볼까 하고 고민을 하긴 했습니다만. 유튜브나 블로그등에 좋은 강좌들은 꽤 많은지라 원론적인 부분 빼고 2~3년 전부터 매우 애정하고 모두의 프린터, 모두의 자막, 모두의 플러그 등을 비롯 최근에 만든 많은 프로그램들의 개발 언어인 Go라는 언어를 가지고 특정 프로그램을 만들기 위한것 보다는 함수 하나, 기능 하나들 위주로 "이러이러한 기능을 만들고 싶으면 요래 하면 됩니다!" 그냥 따라 하거나 복붙 하거나 하면 되는 그 과정에서 필요한 지식을 전달하고 가능하면 C/C++, 자바 등의 다른 언어에 대한 이야기도 풀어 갈 수 있는 영상을 작업해보려 합니다. 영상의 보조적 수단으로 블로그에 포스트도 작성해 올릴 예정입니다. 시작에 앞서 기본적으로 .. 1일1고(111GO) | 2020. 4. 24.
[Go/Golang] Json , Xml 구조체 만들기 Go언어는 기본적으로 다른 Managed 언어들과 유사하게 Json 이나 Xml 같이 포멀한 데이터 포맷에 대한 Parser를 제공하고 있습니다...만!!! 이런 비정형화 된 텍스트 베이스의 데이터를 구조체 없이 interface를 통해 map 데이터 등으로 Unmarshal해서 사용하는건 엄청난 노가다 및 예외처리의 지옥을 경험하게 되겠지요. 그래서 권장하기론 해당 자료구조에 맞는 구조체를 만들어 사용하기를 권장합니다만 .. 이게 복잡하고 많은 Key가 존재하는 Json이나 Depth가 어마무시한 Xml 파일을 한땀 한땀 구조체로 만드는것도 ㅋㅋ 엄청난 노가다이기도 하지요. 그래서 이러한 빡침을 격은 선각자들께서 유용한 온라인 사이트를 제공해 주시고 계십니다. 우선 Json을 Go 구조체로 만들어주는 .. 개발관련 | 2020. 3. 16.
Go 개발 환경 설정 이런저런 강좌 시작하기 합서 제가 애정해 마지 않는 Go 라는 언어의 개발환경 설정에 대한 글을 작성해 봅니다. 우선 Go 를 설치 하셔야 겠지요 일단 윈도 사용자를 기준으로 설명합니다. https://golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fib.. 개발관련 | 2019. 9. 6.
반응형