Widget이란?

1. Widget(GtkWidget)이란 무엇인가?

GTK는 Widget에서 시작하여 Widget으로 끝난다.

    • GTK를 이용해 개발하려는 목적이 무엇인가? 서버 데몬을 짜기위해서? 아니면 웹페이지를 표시하기 위해서? (우습지 않나요 -_-; 사람들은 가끔 물어요 혹시 지금 웃길려구 그런거예요 라고 그럼 네라고 대답하죠 -0- 췟)
      • GUI 프로그램을 제작하기 위해서이다.
      • GTK에서 화면을 표시하는 구성요소의 가장 기본이 되는 것은 Widget이다. 화면에 뜨기 시작하면서부터 종료할때까지 모든것은 Widget을 통해 제어하게 된다. 하다못해 종료버튼을 누르는것도 Widget의 이벤트를 이용하는것이다. 또 사용자의 관점에서 보았을때 Widget이 화면에 표시되는 순간이 프로그램의 시작이고 Widget이 화면에서 완전히 사라지는 순간이 프로그램이 끝나는것이다. 물론 내부적으로는 화면이 뜨기전에도 이런저런 작업을 한다.

GTK에서 Widget이라함은 화면에 표시하기 위한 가장 기본이 되는것이다.

    • GTK를 이용해 만들어진 프로그램들을 보았을때 화면에 표시되는 Window 그리고 내부에 보여지는 각종 구성요소들은 모두 Widget위에 그려진다 해도 과언이 아니다. Window, Entry, Drawingarea 등등 그 어느것하나 Widget이 아닌것이 없다. 모두가 Widget을 상속하여 확장되고 구현되어진다.
    • GtkWidget은 앞으로 여러분이 GTK를 배우며 가장많이 다루게 될 것이다. GTK에서 화면을 구성하는 요소들은 GtkWidget이란것만 기억하시기 바란다.
      • 요놈도,
      • 요놈도,
      • 그리고 요놈도, 모두가~ GtkWidget.

GTK에서 Widget의 Type은 GtkWidget이다.

    • 변수를 지정할때 타입이 GtkWidget이 되는것이다. C에서라면 아래와 같이 되며 포인터로 지정한다.
      • GtkWidget *main_window;
      • 한가지 더 말하자면 GTK에서 화면의 구성요소(Widget)들은 생성함수로 생성된다. 새로운 메모리의 영역을 할당받고 초기화를 하게 되는것이다.
      • GtkWidget을 반환(return)받거나 파라미터로 전달할때도 타입은 포인터다. C에서는 너무나 일반적인 형태이며 다들 쉽게 이해하고 납득하시리라 생각한다.

2. 정리 해보자.

    • GTK는 Widget으로 시작하여 Widget으로 끝난다.
    • GTK에서 Widget이라함은 화면에 표시되는 구성요소 각각을 말한다.
    • GTK에서 Widget의 변수 타입은 GtkWidget
    • 프로그램 작성에 있어서 GtkWidget은 대부분 포인터로 사용한다.