본문 바로가기
컴퓨터 관련

GTK+ layout 관리 [2] GtkAlignment

by _BlankSpace 2017. 4. 12.

GtkAlignment은 widget의 정렬을 control하고,  scaling도 관리합니다.


scailing은 위젯의 크기라고 생각하면 됩니다.


예제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <gtk/gtk.h>
int main(int argc, char* argv[]) {
    GtkWidget* window;
    GtkWidget* align;
    GtkWidget* lbl;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "GtkAlignment");
    gtk_window_set_default_size(GTK_WINDOW(window), 300200);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_container_set_border_width(GTK_CONTAINER(window), 5);
    align = gtk_alignment_new(1100);
    lbl = gtk_label_new("bottom-left");
    gtk_container_add(GTK_CONTAINER(align), lbl);
    gtk_container_add(GTK_CONTAINER(window), align);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit),
            NULL);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}
cs


1
align = gtk_alignment_new(, 1, , );
cs

gtk_alignment_new()는 GtkAlignment 컨테이너를 생성한다.

파라미터는 0부터 1까지 가질 수 있음.

첫 번째 인자 : horizontal alignment 0 < a < 1

두 번째 인자 : vertical alignment 0 < a < 1

세 번째 인자 : horizontal scale, 수평으로 사용되지 않은 공간을 채운다.

네 번째 인자 : vertical scale, 수직으로 사용되지 않은 공간을 채운다.


1
lbl = gtk_label_new("bottom-left");
cs

gtk_label_new() 함수는 label widget을 생성한다.


1
gtk_container_add(GTK_CONTAINER(align), lbl);
cs

GtkAlignment 컨테이너에 label을 더한다.


1
gtk_container_add(GTK_CONTAINER(window), align);
cs

window에 alignment 컨테이너를 위치시킨다.


실행 화면


1
align = gtk_alignment_new(0000);
cs


1
align = gtk_alignment_new(0100);
cs


1
align = gtk_alignment_new(1000);
cs


1
align = gtk_alignment_new(1100);
cs


각각의 상황을 보면 확실하게 이해할 수 있을 것입니다.


많은 도움 되었기를 바랍니다!

댓글