모두의 프린터는 어떠한 경우에도 본인인증, 회원가입, 카드결제를 요구하지 않습니다.
다운로드를 유도하는 애드센스 광고를 피로곰이 배포하는 프로그램들의 다운로드 링크로 착각하지 않도록 주의하시기 바랍니다. 피로곰이 배포하는 모든 프로그램은 본인인증, 회원가입, 이용료 결제 없이 무료로 사용가능합니다.
많이 찾는 글들...
  1. Ghostscript/GhostPCL 설치 안내
  2. 파일 다운로드가 차단되는 경우
  3. 내 컴퓨터의 32비트,64비트 여부 아는법
  4. 'Windows의 PC 보호' 문제
  5. 모두의 프린터 실행후 환경설정창 뜨지 않고 무반응
  6. Ghostscript PDF변환 불가. Can't load Ghostscript DLL
  7. 대법원 인터넷 등기소, 전자소송, 경매,전자공탁등 대법원계열 사이트관련
  8. 모두의 프린터 사용후 네트워크 장애가 발생하는경우. (대법원 인터넷등기소 등)
  9. 출력시 모두의 프린터가 강제종료 되는 경우.'지원하지 않는 PDF또는 가상 프린터입니다.'
  10. 오픽(OPic), 연결상태 확인 불가 프린터, 등록되지 않은 프린터(MarkAny e-PageSAFER)
  11. YBM 토익성적표 관련(정상적인 프린터로 출력을 진행하시기 바랍니다)
  12. 리포트뷰어(ReportViewer) 관련(특수목적프린터, 문서변환 프로그램을 제거해주세요)
  13. 인터넷증명발급센터 서트피아(Certpia) 관련 안내
  14. 인강사이트 관련 - 출력에 매우 오래 걸림, PDF파일 버벅거림, PDF여는데 오래걸림 등등
  15. '잘못된 프린터 데이터를 수신하였습니다.' 문제
  16. MS서피스, 삼성 갤럭시북 등 ARM기반 랩탑, '잘못된 프린터 데이터를 수신하였습니다.' 문제

[Go언어 윈도 GUI] walkmgr 에 라디오 버튼 추가

최근에는 lxn/walk, lxn/win 등을 클론해서 따로 필요한 부분을 수정해서 깃헙에 올려두고 있습니다. walk 를 통한 윈도 GUI 프로그래밍을 조금 수월하게 하고자 walkmgr 이라는 패키지를 만들어 쓰고 있구요.. 이와 관련된건 이 1일1고 카테고리의 이전 글들에 간단히 강좌 비슷한 글을 작성해 두었으니 참고 하시구요 ..

이 walkmgr 은 제가 만드는 모두의 프린터, 모두의 PDF등을 비롯한 윈도 GUI 프로그래밍에 모두 사용되고 있는 패키지들 입니다.

기존 walkmgr에는 checkbox 는 제공을 하고 있었으나 walk 에서 제공하는 radio button 은 아직 지원을 하지 않고 있었습니다. 라디오 버튼을 잘 쓸일이 없었던 것도 있고 walkmgr 작업하기 귀찮아서 checkbox 로 라디오버튼 같은 식으로 쓰곤 했었는데.. 계속 그리 하다보니 매우 귀찮은지라 ㅎㅎ..

walkmgr_example 라고 제가 깃헙에 올려둔 win, walk, walkmgr 을 이용해서 GUI 프로그래밍을 할 수 있는 예제를 올려둔게 있습니다.

이 예제에 radio_test.go 라는 파일을 예제로 추가해 두었습니다.

Go
func TestRadio(t *testing.T) {
	wm := walkmgr.NewWin("RADIO BUTTON", 640, 480)

	// 라디오 버튼은 반드시 그룹박스로 묶어야 합니다.
	wm.HGroupBox("라디오 버튼 그룹")
	radio1 := wm.RadioButton("라디오1", int(10))
	radio2 := wm.RadioButton("라디오2", int(20))
	radio3 := wm.RadioButton("라디오3", int(30))
	wm.End()

	_ = radio1
	_ = radio2
	_ = radio3

	wm.PushButton("확인", func() {
		// 라디오 버튼들중 암놈이나 Group 으로
		// 라디오 버튼들을 관리하는 그룹을 통해서 체크된 버튼을 얻습니다.
		checkedBtn := radio1.Group().CheckedButton()

		if checkedBtn != nil {
			fmt.Print("체크된 버튼: ")
			fmt.Print(checkedBtn.Text())
			fmt.Print(" 값:")
			fmt.Println(checkedBtn.Value())
		}
	})

	wm.Start()
}

이렇게요 ..

일반적인 PushButton 이랑 비슷한 구조긴 한데 차이점이라면 라디오 버튼의 경우 여러 버튼들중 하나만 선택이 가능한 곳에 쓰입니다. 체크박스가 중복해서 여러가지 값을 선택 가능한 반면 보통 라디오 버튼은 여러 선택가능한 옵션중 단 하나만 선택이 가능한 차이점을 가집니다.

이렇게 말이죠..

그런 이유로 .. 라디오 버튼은 버튼이 몇개가 되던간에 하나의 그룹에 묶여 있어야 합니다. 그런 이유로 GroupBox, HGroupBox, VGroupBox 중 하나로는 반드시 감싼? 상태가 되어야 합니다. 

그래야 위 그림과 같이 하나의 선택이 유지되고 각 버튼들을 하나의 그룹으로 관리가 가능합니다.

또 다른 차이점은 .. LineEdit 같이 string 이나 int 같이 형 자체가 고정적이지 않고 SetValue 로 지정가능한 변수가 interface{} 형입니다. 원하는 데이터를 어느정도 맘대로?? 지정이 가능하긴 하겠습니다.

체크박스는 단순히 체크여부만 가지고 추가적인 설정이 필요하지만 .. 라디오 버튼은 인터페이스를 사용함으로 .. 좀더 다양한 사용이 가능할 것으로 보입니다.

이상입니다.

많이 찾는 글들...
  1. Ghostscript/GhostPCL 설치 안내
  2. 파일 다운로드가 차단되는 경우
  3. 내 컴퓨터의 32비트,64비트 여부 아는법
  4. 'Windows의 PC 보호' 문제
  5. 모두의 프린터 실행후 환경설정창 뜨지 않고 무반응
  6. Ghostscript PDF변환 불가. Can't load Ghostscript DLL
  7. 대법원 인터넷 등기소, 전자소송, 경매,전자공탁등 대법원계열 사이트관련
  8. 모두의 프린터 사용후 네트워크 장애가 발생하는경우. (대법원 인터넷등기소 등)
  9. 출력시 모두의 프린터가 강제종료 되는 경우.'지원하지 않는 PDF또는 가상 프린터입니다.'
  10. 오픽(OPic), 연결상태 확인 불가 프린터, 등록되지 않은 프린터(MarkAny e-PageSAFER)
  11. YBM 토익성적표 관련(정상적인 프린터로 출력을 진행하시기 바랍니다)
  12. 리포트뷰어(ReportViewer) 관련(특수목적프린터, 문서변환 프로그램을 제거해주세요)
  13. 인터넷증명발급센터 서트피아(Certpia) 관련 안내
  14. 인강사이트 관련 - 출력에 매우 오래 걸림, PDF파일 버벅거림, PDF여는데 오래걸림 등등
  15. '잘못된 프린터 데이터를 수신하였습니다.' 문제
  16. MS서피스, 삼성 갤럭시북 등 ARM기반 랩탑, '잘못된 프린터 데이터를 수신하였습니다.' 문제

모두의프린터에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기