음악, 삶, 개발

16. Graphical User Interfaces 본문

개발 공부/Principles And Practice Using C++

16. Graphical User Interfaces

Lee_____ 2020. 7. 22. 06:30

< 목차 >

 

16.1 User interface alternatives

16.2 The "Next" button

16.3 A simple window

16.3.1 A callback function

16.3.2 A wait loop

16.3.3 A lamda expression as a callback

16.4 Button and other Widgets

16.4.1 Widgets

16.4.2 Buttons

16.4.3 In box and Out box

16.4.4 Menus

16.5 An example

16.6 Control inversion

16.7 Adding a menu

16.8 Debugging GUI code


16.1 User interface alternatives

 

프로그래머로써 User Interface 를 제공할수있는 3가지 주요 선택지가 있다.

 

  1. console 의 input 과 ouput : iostream 을 사용한다.
  2. GUI 라이브러리 :  윈도우, 맥 모두 동일하게 보여지기위해서 할수있는 유일한 선택이다.
  3. 웹브라우저 interface : remote access 를 요구하는 프로그램에 이상적이다. (하지만 여기서 다 설명 못함, 너무 방대)

언제나 프로그램의 logic 과 GUI logic (input, ouput 을 위한 logic) 을 분리하는것이 중요하다.


16.2 The "Next" button

 

GUI 는 사용자의 mouse 가 어디있는지, mouse 로 뭘하는지를 추적한다.

프로그램이 action 을 원한다면 아래 3가지를 해야한다.

 

  • GUI 에게 무엇을 기대하는지 말해줘야함. ex) 누군가가 next button 을 눌렀다.
  • 사용자가 무언가를 했을때 뭘 해야할지.
  • GUI 가 action 을 detect 할때까지 기다려야함.

GUI 프로그래밍은 system 에 의해 제공되는것이 아니라, 우리 스스로 만들어야한다.


16.3 A simple window

 

system : 운영체제와 GUI 라이브러리의 조합.

 

system 은, 지속적으로 마우스가 있는지, 마우스 버튼이 눌렸는지 안눌렸는지 추적한다.

프로그램은 스크린의 특정 영역에 대해 관심을 표할수있고,

system 에게 이 특정 영역에서 무언가가 일어났을때 함수를 호출하라고 부탁할수있다.

이렇게 system 이 호출해주는 함수를 callback 함수라고한다.

mouse button 이 우리의 button 을 눌렀을때, 먼가를 하고싶다면

아래와 같은 과정을 만들어내야한다.

 

  1. button 을 정의한다.
  2. button 을 스크린에 표시되게 한다. 
  3. GUI 가 호출해줄 함수를 정의한다. 
  4. GUI 에게 button 과 함수에 대해 알려준다.
  5. GUI 가 우리의 함수를 호출할때까지 기다린다.

16.3.1 A callback function

16.3.2 A wait loop

16.3.3 A lamda expression as a callback

16.4 Button and other Widgets

16.4.1 Widgets

16.4.2 Buttons

16.4.3 In box and Out box

16.4.4 Menus

16.5 An example

16.6 Control inversion

16.7 Adding a menu

16.8 Debugging GUI code

 

생략.