· GtkTable은 열과 행을 배치할 수 있다.
예제
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 34 35 36 37 | #include <gtk/gtk.h> int main(int argc, char *argv[]) { int i; int j; int pos = 0; GtkWidget *window; GtkWidget *table; GtkWidget *button; gchar *values[20] = { "7", "8", "9", "/", "~", "4", "5", "6", "*", "!", "1", "2", "3", "-", "@", "0", ".", "=", "+", "#" }; 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), 200, 200); gtk_window_set_title(GTK_WINDOW(window), "GtkTable"); gtk_container_set_border_width(GTK_CONTAINER(window), 5); table = gtk_table_new(4, 5, TRUE); gtk_table_set_row_spacings(GTK_TABLE(table), 1); gtk_table_set_col_spacings(GTK_TABLE(table), 1); for (i=0; i < 4; i++) { for (j=0; j < 5; j++) { button = gtk_button_new_with_label(values[pos]); gtk_table_attach_defaults(GTK_TABLE(table), button, j, j+1, i, i+1); pos++; } } gtk_container_add(GTK_CONTAINER(window), table); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } | cs |
실행 화면
설명
1 | table = gtk_table_new(4, 5, TRUE); | cs |
- GtkTable widget을 4열 5행으로 만든다.
- 세 번째 파라미터가 TRUE이면 모든 테이블의 셀은 가장 큰 widget에 포함하는 셀의 사이즈에 맞추어진다.
1 2 | gtk_table_set_row_spacings(GTK_TABLE(table), 2); gtk_table_set_col_spacings(GTK_TABLE(table), 2); | cs |
- 테이블의 열과 행 공간을 설정.
1 | gtk_table_attach_defaults(GTK_TABLE(table), button, j, j+1, i, i+1 ); | cs |
- 동일한 padding과 expansion 옵션으로 table 컨테이너에 child를 더한다.
'컴퓨터 관련' 카테고리의 다른 글
[git] stash 정리. (0) | 2017.04.14 |
---|---|
[GIT] 강제 pull 받기. (0) | 2017.04.14 |
GTK+ layout 관리 [3] GtkVBox, GtkHBox (0) | 2017.04.14 |
GTK+ layout 관리 [2] GtkAlignment (0) | 2017.04.12 |
리눅스 vim 설치 방법 (0) | 2017.04.12 |
댓글