· GtkVBox는 수평 박스 컨테이너이다. 하나의 칼럼에 chile widget을 놓는다.
· GtkHBox는 수직 박스 컨테이너이다. 하나의 열에 chile 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 30 31 32 33 | #include <gtk/gtk.h> int main(int argc, char* argv[]) { GtkWidget* window; GtkWidget* vbox; GtkWidget* settings; GtkWidget* accounts; GtkWidget* loans; GtkWidget* cash; GtkWidget* debts; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 230, 250); gtk_window_set_title(GTK_WINDOW(window), "GtkVBox"); gtk_container_set_border_width(GTK_CONTAINER(window), 5); vbox = gtk_vbox_new(TRUE, 1); gtk_container_add(GTK_CONTAINER(window), vbox); settings = gtk_button_new_with_label("Settings"); accounts = gtk_button_new_with_label("Accounts"); loans = gtk_button_new_with_label("Loans"); cash = gtk_button_new_with_label("Cash"); debts = gtk_button_new_with_label("Debts"); gtk_box_pack_start(GTK_BOX(vbox), settings, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), accounts, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), loans, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), cash, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), debts, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), G_OBJECT(window)); gtk_widget_show_all(window); gtk_main(); return 0; } | cs |
실행 화면
코드 설명
1 | vbox = gtk_vbox_new(TRUE, 1); | cs |
· gtk_vbox_new() 함수는 GtkVBox 컨테이너를 생성한다.
· 첫 번째 인자는 homogeneous 인자로 TRUE로 설정하면, 모든 버튼은 같은 사이즈로 설정된다.
· 두 번째 인자는 spacing. 여백의 크기라고 생각하면 된다.
1 | gtk_box_pack_start(GTK_BOX(vbox), settings, TRUE, TRUE, ); | cs |
· 첫 번째 인자 : box container
· 두 번째 인자 : child widget
· 세 번째 인자 : expand
· 네 번째 인자 : fill
· 다섯 번째 인자 : padding
· expand가 FALSE이면 fill 인자는 효과가 없다. 만약 homogeneous가 TRUE이면 expand는 효과가
없다.
'컴퓨터 관련' 카테고리의 다른 글
[GIT] 강제 pull 받기. (0) | 2017.04.14 |
---|---|
GTK+ layout 관리 [4] GtkTable (0) | 2017.04.14 |
GTK+ layout 관리 [2] GtkAlignment (0) | 2017.04.12 |
리눅스 vim 설치 방법 (0) | 2017.04.12 |
리눅스 커맨드 흔한 에러 해결법 [1] (3) | 2017.04.12 |
댓글