본문 바로가기
반응형

Golang19

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 프로그램 만들기 #8 이번에는 .. 드롭다운박스를 다뤄보도록 하겠습니다. func comboTest1() { mgr, _ := NewWindowMgrNoResize("콤보박스 테스트", 640, 200, GetIcon()) dd1 := mgr.DropDownBox([]string{"1.하하", "2.호호", "3.ㅋㅋ", "4.ㅎㅎ"}) dd1.CurrentIndexChanged().Attach(func() { fmt.Printf("선택된 인덱스 : %d, 선택된 값 : %s\n", dd1.CurrentIndex(), dd1.Text()) }) mgr.StartForeground() } 요래 DropDownBox 메소드를 사용하시면 되구요 인자는 []string 배열로 지정 됩니다. 보통 드롭다운박스는 보여지는 텍스트 값 또.. 1일1고(111GO) | 2022. 1. 10.
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로 웹크롤러 만들기 #1 원래 유튭 영상으로만 어떻게 해보려고 몇 번 녹화도 해보고 라이브도 진행해보고 했으나.. 영상보단 글로써 전달하는 게 효율적이란 생각이 들어서 .. 영상 대본 등을 이용해서 먼저 글을 올립니다. 영상은 포스트 작성후 이 글의 내용에 대해 간단히 설명하는 정도로 넘어가도록 하겠습니다. 유튜브 피로곰TV채널의 구독자와 시청시간이 충족돼서 광고도 달수 있게 되고 커뮤니티 기능도 사용 가능해지면서 전부터 생각하던 대리코딩과 관련한 글을 작성했고 한분께서 크롤링과 관련된 문의를 하셨습니다. 솔직히 별로 하고 싶지 않은 류의 프로그램이라 대리코딩 콘텐츠를 할까 말까 고민한 가장 큰 이유 중 하나가 이놈 때문인데 그래도 요청이 왔으니 진행을 해보겠습니다. 크롤러를 별로 하고 싶지 않았던 이유를 짧게 말해보자면.. 크.. 1일1고(111GO) | 2020. 11. 17.
마이크로소프트 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/0009] 윈도 트레이 메뉴를 추가하자GO! 9번째 시간 윈도 트레이 메뉴(아이콘)을 추가하는 방법에 대한 영상입니다. 사용된 패키지의 github 주소 입니다 https://github.com/tadvi/systray tadvi/systray Go package for Windows Systray icon, menu and notifications - tadvi/systray github.com go get github.com/tadvi/systray 콘솔에서 위 명령으로 시스템에 추가 가능합니다. 이번 편 까지 작성된 전체 코드의 압축파일입니다. 1일1고(111GO) | 2020. 5. 17.
[1일1GO/0008] 크롬을 싹다 죽여보자GO!! 피로곰과 함께하는 Go프로그래밍 1일1GO! 8번째 영상에서 만든 프로그램의 소스코드입니다. 컴파일된 실행파일도 같이 들어 있으니 실행파일만 필요하신 분도 받아서 사용하심 되겠습니다. 실행 파일만 필요하실 분들을 위한 실행파일 링크! ( 64비트용입니다 ) 1일1고(111GO) | 2020. 5. 14.
[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/0003] 더 편리한 환경을 위한 추가 구성 MSYS2! Go는 CGO라는 형식으로 C언어 코드를 직접적으로 Go코드와 함께 사용도 가능하고 C/C++를 비롯한 다른 언어로 개발된 라이브러리나 DLL등을 끌어다 쓰는 짓 등도 가능한 언어입니다. 근본적으로 윈도, 리눅스, MacOS 등을 비롯 다양한 OS에서 실행 가능한 프로그램을 개발 가능하고 더군다나!! 윈도에서도 리눅스, MacOS 등 다른 OS용의 프로그램을 명령어 몇 줄만으로 같은 코드로 만들어 낼 수 있는 놈입니다! (캬~) 하지만 기본적으로 통합개발환경(IDE)을 공식적으로 제공하는 것이 아니기 때문에 윈도 프로그램에 사용되는 MS의 Visual Studio 같은 개발 툴 하나로 대부분의 모든 것을 커버해주는 편리성은 좀 떨어지는 편입니다. 여는 간에.. 그런 이유로 제 경우에는 리눅스 개발에서 사.. 1일1고(111GO) | 2020. 4. 27.
[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.
반응형