본문 바로가기
컴퓨터 관련

GTK [1] 창 띄우기.

by _BlankSpace 2017. 4. 9.

한참 GTK를 공부하면서.. 구글이나 GTK 관련 사이트에서 공부하면서 개인적으로 정리한 내용들을 포스팅하려고 합니다.


최근에는 QT? 나 기타 기술을 이용하여 리눅스 GUI를 설정하는데 GTK도 공부하면 좋지 않을까 생각이 드네요.


이러한 생각을 하시는 분들께 조금이나마(?) 도움이 되었으면 좋겠습니다.


1. 창 띄우기


1
2
3
4
5
6
7
8
9
10
#include <gtk/gtk.h>
int main(int argc, char* argv[])
{
GtkWidget* window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main ();
return ;
}
cs


위 프로그램은 gcc를 사용하여 컴파일할 수 있다.


1
gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0`

cs


- 코드 설명


gtk_init (&argc, &argv);

디폴트로 비주얼과 칼라맵 등 몇 가지를 셋팅한 후, 다음 인자로 넘어간다. 이 함수는 사용할 라이브러리

를 초기화 하고, 디폴트로 signal handler를 셋업하며, 명령행을 통해 프로그램에 전해진 인자들 중 아래

의 것들을 찾아 체크한다.

– gtk-module

– g-fatal-warnings

– gtk-debug

– gtk-no-debug

– gdk-debug

– gdk-no-debug

– display

– sync

– name

– class


window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_widget_show (window);

- 위의 두 줄은 window를 만들고 보여준다.

- GTK_WINDOW_TOPLEVEL이란 인자는 window 매니저의 장식과 위치설정에 따르게 한다.

- 0x0 크기의 window를 만들지 않고, child가 없는 window는 디폴트 값인 200×200 크기로 만들어진다.

- 순서 없는 목록 gtk_widget_show() 함수는 이 widget의 속성에 대한 세팅이 끝났음을 GTK에 알려주는 것이고, 이후 그 widget은 보여진다.


gtk_main ();

순서 없는 목록gtk_main()은 GTK 어플 전반적으로 볼 수 있는 또 하나의 함수호출이다. 프로그램이 해당 라인에 이르면, GTK는 이벤트, 타임아웃, 또는 파일 입출력 감지 등을 기다리며 대기한다.

'컴퓨터 관련' 카테고리의 다른 글

GTK [3] application icon 출력.  (0) 2017.04.09
GTK [2] 가운데에 창 띄우기.  (0) 2017.04.09
GTK Makefile 작성법.  (0) 2017.04.09
GTK 란?  (0) 2017.04.09
[linux/ubuntu] 우분투(Ubuntu) NFS 설치 및 설정  (0) 2017.04.09

댓글