· GtkFixed는 고정된 위치와 사이즈로 child widget을 위치시킵니다.
· 따라서 자동으로 레이아웃 관리를 하지 않습니다.
간단하게 말하자면 레이아웃을 자신 마음대로 정할 수 있는 레이아웃 관리입니다.
간단한 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <gtk/gtk.h> int main(int argc, char* argv[]) { GtkWidget* window; GtkWidget* fixed; GtkWidget* btn1; GtkWidget* btn2; GtkWidget* btn3; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "GtkFixed"); gtk_window_set_default_size(GTK_WINDOW(window), 300, 200); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); fixed = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window), fixed); btn1 = gtk_button_new_with_label("Button"); gtk_fixed_put(GTK_FIXED(fixed), btn1, 150, 50); gtk_widget_set_size_request(btn1, 80, 30); btn2 = gtk_button_new_with_label("Button"); gtk_fixed_put(GTK_FIXED(fixed), btn2, 15, 15); gtk_widget_set_size_request(btn2, 80, 30); btn3 = gtk_button_new_with_label("Button"); gtk_fixed_put(GTK_FIXED(fixed), btn3, 100, 100); gtk_widget_set_size_request(btn3, 80, 30); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } | cs |
실행 화면
코드 설명
· 위와 같이 fixed 방법을 사용하면 application의 window가 resize해도 버튼의 자리나 크기는 바뀌
지 않는다.
1 | fixed = gtk_fixed_new(); | cs |
get_fixed_new() 함수는 GtkFixed 컨테이너에 생성한다.
1 | gtk_fixed_put(GTK_FIXED(fixed), btn1, 150, 50); | cs |
· 첫 번째 버튼은 150, 50 위치에 고정된다.
1 | gtk_widget_set_size_request(btn1, 80, 30); | cs |
· 첫 번째 버튼의 크기를 재조정한다.
'컴퓨터 관련' 카테고리의 다른 글
리눅스 vim 설치 방법 (0) | 2017.04.12 |
---|---|
리눅스 커맨드 흔한 에러 해결법 [1] (3) | 2017.04.12 |
GTK [5] Mnemonic. (0) | 2017.04.10 |
GTK [4] Tooltip. (0) | 2017.04.10 |
GTK [3] application icon 출력. (0) | 2017.04.09 |
댓글