GTK 입문 학습: 용기 레이아웃 표 레이아웃
1) 수직 레이아웃 용기 만 들 기 (A) 2) 수평 레이아웃 용기 만 들 기 (B), close 단추 (C) 3) 수평 레이아웃 용기 와 close 단 추 를 수직 레이아웃 용기 에 추가 (B 와 C 를 A 에 추가) button 1 단추 만 들 기 (D) 와 button 2 단추 (E) 5) button 1 단추 와 button 2 단 추 를 수평 레이아웃 용기 에 추가(D 와 E 를 B 에 추가)
이렇게 하면 위의 그림 의 레이아웃 을 완성 할 수 있 습 니 다. 그러나 레이아웃 에 많은 컨트롤 이 있다 면 우 리 는 수평 과 수직 용 기 를 통 해 구성 하 는 것 이 번 거 로 울 것 입 니 다. 그리고 컨트롤 이 많 을 수록 구조 가 번 거 로 울 것 입 니 다. 더 간단 한 방법 이 있 습 니까? 있 습 니 다. 바로 우리 가 곧 배 워 야 할 표 레이아웃 입 니 다. 구체 적 인 작업 절 차 는 수평 수직 구조 와 같 습 니 다.
1) 주 창 만 들 기
2) 레이아웃 용기 만 들 기
3) 레이아웃 용 기 를 창 에 추가
4) 생 성 에 필요 한 컨트롤
5) 컨트롤 을 레이아웃 용기 에 추가
6) 모든 컨트롤 표시
표 레이아웃 용기 생 성: GtkWidget * gtk table new (
guint rows,
guint columns,
gboolean homogeneous );
rows: 행 수 coumns: 열 수 homogeneous: 용기 내 표 의 크기 가 같은 반환 값 인지 여부: 표 레이아웃 용기 포인터
레이아웃 용기 추가 컨트롤: void gtk table attach defaults (
GtkTable *table,
GtkWidget *widget,
guint left_attach,
guint right_attach,
guint top_attach,
guint bottom_attach );
table: 컨트롤 을 수용 하 는 용기 widget: 추가 할 컨트롤 후 네 개의 매개 변 수 는 컨트롤 이 놓 인 좌표 입 니 다. 규칙 은 다음 과 같 습 니 다.
전체 코드 는 다음 과 같 습 니 다:
#include <gtk/gtk.h> //
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv); //
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //
GtkWidget *table = gtk_table_new(2, 2, TRUE); // ,2 2
gtk_container_add(GTK_CONTAINER(window), table); //
// button 1
GtkWidget *button = gtk_button_new_with_label("buttton 1");
gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 1, 0, 1);//
// button 2
button = gtk_button_new_with_label("button 2");
gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 0, 1);
// close button
button = gtk_button_new_with_label("close");
gtk_table_attach_defaults(GTK_TABLE(table), button, 0, 2, 1, 2);
gtk_widget_show_all(window); //
gtk_main(); //
return 0;
}
원본 코드 다운로드 여 기 를 누 르 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
중간 데이터의 스키마를 안전하게 변경하는 단계한 데이터베이스 (스토리지)의 테이블 (경로)에 열 (필드) a가 있고 그것을 읽고 쓰고 있다고 가정합니다. 이 흐름에 b를 추가하는 절차를 생각해 봅시다. 테이블에 열 b를 NULL 권한 (선택 사항)으로 추가합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.