GTK+-3.0编程 (四) 网格布局 Grid
2016-11-15 23:20
316 查看
http://www.cnblogs.com/rain-blog/p/gtk3-4.html
实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等。
接下来试试网格布局 Grid。
我们创建 example4.c ,内容如下:
编译并运行:
运行结果:
实际的应用中,往往有很多个控件, 同样GTK提供了很多种布局方案,Box, Fixed , Table , Grid 等。
接下来试试网格布局 Grid。
我们创建 example4.c ,内容如下:
#include <gtk/gtk.h> static void print_hello(GtkWidget *button , gpointer data); static void activate(GtkApplication *app , gpointer data); int main(int argc , char **argv) { GtkApplication *app; int app_status; app = gtk_application_new("org.rain.gtk" , G_APPLICATION_FLAGS_NONE); g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); app_status = g_application_run(G_APPLICATION(app) , argc , argv); g_object_unref(app); return app_status; } static void print_hello(GtkWidget *button , gpointer data) { printf("Hello,World!\n"); } static void activate(GtkApplication *app , gpointer data) { GtkWidget *window; GtkWidget *grid; GtkWidget *button; //创建窗口 window = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(window) , "grid test"); // gtk_window_set_default_size(GTK_WINDOW(window) , 200 , 200); //创建网格 grid = gtk_grid_new(); //添加网格布局到window上 gtk_container_set_border_width(GTK_CONTAINER(window) , 20); gtk_container_add(GTK_CONTAINER(window) , grid); //添加按钮一到位置(0,0)处,并设置高,宽均为一个单元 button = gtk_button_new_with_label("Button1"); g_signal_connect(button , "clicked" , G_CALLBACK(print_hello) , NULL); gtk_grid_attach(GTK_GRID(grid) , button , 0 , 0 , 1 , 1); //添加按钮一到位置(1,0)处,并设置高,宽均为一个单元 button = gtk_button_new_with_label("Button2"); g_signal_connect(button , "clicked" , G_CALLBACK(print_hello) , NULL); gtk_grid_attach(GTK_GRID(grid) , button , 1 , 0 , 1 , 1); //添加按钮一到位置(0,1)处,并设置高为一个单元,宽为两个单元 button = gtk_button_new_with_label("Exit"); g_signal_connect_swapped(button , "clicked" , G_CALLBACK(gtk_widget_destroy) , window); gtk_grid_attach(GTK_GRID(grid) , button , 2 , 0 , 1 , 1); //添加按钮一到位置(1,1)处,并设置高为一个单元,宽为两个单元 button = gtk_button_new_with_label("Exit"); g_signal_connect_swapped(button , "clicked" , G_CALLBACK(gtk_widget_destroy) , window); gtk_grid_attach(GTK_GRID(grid) , button , 1 , 1 , 2 , 1); gtk_widget_show_all(window); }
编译并运行:
gcc exampe.c `pkg-config --cflags --libs gtk+-3.0` ./a.out
运行结果:
gtk_grid_attach(GTK_GRID(grid) , button , 0 , 0 , 1 , 1); 该函数后面四个参数依次代表:第几行,第几列,横向跨度,纵向跨度。
相关文章推荐
- GridBagConstraints(网格组布局管理器的使用)
- 超棒的响应式jQuery网格布局插件 - grid-a licious
- 05 网格布局GtkGrid
- SWT GridLayout 网格布局
- [代码实例][gtk+]Grid布局
- jQuery Mobile基础06----jQuery Mobile Widgets(2)-grid(网格布局
- 详解jQuery移动页面开发中的ui-grid网格布局使用
- GTK+-3.0编程 (一) 创建一个空白的窗口
- GTK学习笔记之网格布局GtkGrid(3)
- CSS网格布局(Grid)完全教程
- CSS Grid 网格布局全解析
- GTK+-3.0编程 (二) 为创建的窗口添加一个按钮
- 鱼c笔记——Python的GUI编程(十六):Tkinter的三大布局管理器pack、grid和place
- GTK+-3.0编程 (三) 让这个按钮丰富一点,并给窗口加上图标
- grid基础语法介绍(上) 《轴线与网格》里主要讲述了grid与flex中,网格与轴线的基本概念,了解了这些基本概念之后,我们可以更轻松地对布局方式进行研究,这一篇文章主要描述grid布局中,定义在容
- 超棒的响应式jQuery网格布局插件 - grid-a licious
- CSS Grid布局:独立源与网格的层叠顺序
- GTK+-3.0编程 (五) GtkBuilder用于快速创建界面,它读取一个xml文件