码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习(2)-GTK布局

时间:2014-12-29 22:52:35      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

首先了解下gtk中函数的定义格式:

记住下面几个格式看,下面的代码

声明变量:GtkAbc*abc=gtk_abc_new()声明控件;

赋值:gtk_abc_set_label(controlName,value);

添加到父容器:gtk_container_add(controFather,controlChildl);

显示控件:gtk_widget_show(controlName);

一般默认值:gtk_box_pack_start()的后三个 值,一般为FALSE,FALSE,0

 

1.盒子布局(垂直和水平)

 

#include <stdio.h>
#include<gtk/gtk.h>
int main(int argc, char *argv[])
{
    //初始化gtk
    gtk_init(NULL,NULL);
    //定义一个指向window的指针
    GtkWindow*window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    //窗体关闭之后执行
    g_signal_connect(window,"destroy",gtk_main_quit,NULL);
    //设置标题
    gtk_window_set_title(window,"标题");
    //每个被添加的控件都要有show
    gtk_widget_show(window);

    //添加一个box,使用垂直布局
    //GTK_ORIENTATION_HORIZONTAL为水平布局
    GtkBox*box=gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
    gtk_container_add(window,box);
    gtk_widget_show(box);
    
    GtkLabel*lb1=gtk_label_new("盒子布局");
    gtk_container_add(box,lb1);
    gtk_box_pack_start(box,lb1,FALSE,FALSE,0);
    gtk_widget_show(lb1);

    GtkEntry*entry1=gtk_entry_new();
    gtk_container_add(box,entry1);
    gtk_box_pack_start(box,entry1,FALSE,FALSE,0);
    gtk_widget_show(entry1);

    GtkButton*btn1=gtk_button_new();
    gtk_button_set_label(btn1,"按钮一");
    gtk_container_add(box,btn1);
    gtk_box_pack_start(box,btn1,FALSE,FALSE,0);
    gtk_widget_show(btn1);

    
    gtk_main();
    
    return 0;
}

运行结果如下

技术分享

2.网格布局

原理:

gtk_grid_attach(grid1,btn1,1,2,3,4):
grid1表示父容器;
btn1表示被添加的控件;
1表示该控件距离左边一个网格;
2表示该控件距离上边两个网格;
3表示该控件占据3个网格的宽度;
4表示该控件占据4个网格的高度;

记住几句话:

1.网格布局的关键词是Grid
2.gtk_button_set_label()表示赋值,赋值用 set_label()
3.gtk_container_add()要在gtk_grid_attach()之后写
#include <stdio.h>
#include<gtk/gtk.h>
int main(int argc, char *argv[])
{
    gtk_init(NULL,NULL);
    GtkWindow*window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(window,"网格布局");
    g_signal_connect(window,"destroy",gtk_main_quit,NULL);
    gtk_widget_show(window);
    
    GtkGrid*grid1=gtk_grid_new();
    gtk_container_add(window,grid1);
    gtk_widget_show(grid1);

    GtkButton*btn1=gtk_button_new();
    gtk_button_set_label(btn1,"111111");
    gtk_grid_attach(grid1,btn1,1,1,1,1);
    gtk_container_add(grid1,btn1);
    gtk_widget_show(btn1);

    GtkButton*btn2=gtk_button_new();
    gtk_button_set_label(btn2,"222222");
    gtk_grid_attach(grid1,btn2,0,0,1,1);
    gtk_container_add(grid1,btn2);
    gtk_widget_show(btn2);
    
    gtk_main();
    
    return 0;
}

运行结果如下图

技术分享

今天,就写这么多了;我的目标并不高,希望每天写一篇,具体细节等学习深入了,再慢慢补充。

C语言学习(2)-GTK布局

标签:

原文地址:http://www.cnblogs.com/2star/p/4192515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!